Я слышал, в Scala можно использовать _
как "анонимный параметр" в анонимной функции:Почему Scala не может указать тип _?
List(1,2,3).foreach(print(_))
Но этот код не может быть скомпилирован:
scala> def a[T](s: Seq[T]): Seq[T] = s.map(_)
<console>:7: error: missing parameter type for expanded function ((x$1) => s.map(x$1))
И это может:
scala> def a[T](s: Seq[T]): Seq[T] = s.map(x => x)
a: [T](s: Seq[T])Seq[T]
Это похоже на вывод типа. Но как мог x => x
предоставить более подробную информацию, чем _
?
+1 Очень интуитивное объяснение синтаксиса placeholder. –