Использование конструктора с ожидаемой функцией

Имея два простых класса, принимающих Int в качестве аргумента:

case class Foo(i: Int)
     class Bar(j: Int)

Я могу сказать:

List(1,2,3) map Foo

Что работает отлично и эквивалентно более подробному:

List(1,2,3) map {Foo(_)}

Однако Bar (потому что это не класс case?) не может использоваться в той же конструкции:

List(1,2,3) map Bar

  error: not found: value Bar
          List(1,2,3) map Bar
                          ^

Есть ли какой-то специальный синтаксис для ссылки на какие-либо конструктор и воспользоваться расширением eta? List (1,2,3) map {new Bar (_)} кажется немного более подробным по сравнению с Foo .

8
задан Tomasz Nurkiewicz 8 October 2011 в 07:53
поделиться