Я знаю, что по этому поводу было довольно много вопросов, но я создал простой пример, который, как мне казалось, должен работать, но все еще не работает, и я не уверен, что понимаю, почему
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))
Может кто-нибудь объяснить, почему второй оператор не компилируется?
scala
scala-placeholder-syntax
Джефф Стори
источник
источник
myStrings.foreach (println)
Ответы:
Он расширяется до:
Вы хотите:
Синтаксис заполнителя для анонимных функций заменяет наименьшее возможное содержащее выражение функцией.
источник
myStrings.foreach(println(_))
автоматически включаетсяtoString
в качестве аргументаprintln
?