Учитывая эти тематические классы:Почему это Scala-заполнитель не работает
case class FeatureDistance(id: Long, distance: Double)
case class SearchResult(score: Float, id: Long)
Почему это не компилировать?
val distances = List[FeatureDistance](FeatureDistance(1L, 10f))
val results = distances.map(SearchResult(0f, _.id))
Но это делает:
val results = distances.map(fd => SearchResult(0f, fd.id))
Ошибка компиляции говорит: missing parameter type for expanded function ((x$3) => x$3.id)
Это потому, что _
только область действия функции карты, так что не видно в SearchResult.apply
вызова?
Я только что столкнулся с этим на днях. Я понятия не имею, почему так, но я подозреваю, что это связано с определением символа подчеркивания. Так как это действительно только синтаксический сахар, это не имеет значения для вашей реальной производительности. – childofsoong