Je sais qu'il y a eu pas mal de questions à ce sujet, mais j'ai créé un exemple simple qui, selon moi, devrait fonctionner, mais ne fonctionne toujours pas et je ne suis pas sûr de comprendre pourquoi
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))
Quelqu'un peut-il expliquer pourquoi la deuxième déclaration ne se compile pas?
Il s'étend à:
myStrings.foreach(println(x => x.toString))
Tu veux:
myStrings.foreach(x => println(x.toString))
La syntaxe d'espace réservé pour les fonctions anonymes remplace la plus petite expression contenant possible par une fonction.