Подчеркивание Scala - ОШИБКА: отсутствует тип параметра для расширенной функции
Я знаю, что было довольно много вопросов по этому поводу, но я создал простой пример, который, как я думал, должен работать, но все же не работает, и я не уверен, что понимаю, почему
val myStrings = new Array[String](3)
// do some string initialization
// this works
myStrings.foreach(println(_))
// ERROR: missing parameter type for expanded function
myStrings.foreach(println(_.toString))
Может кто-нибудь объяснить, почему второе утверждение не компилируется?
1 ответ
Решение
Расширяется до:
myStrings.foreach(println(x => x.toString))
Ты хочешь:
myStrings.foreach(x => println(x.toString))
Синтаксис заполнителя для анонимных функций заменяет наименьшее возможное содержащее выражение на функцию.