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 qui 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 instruction ne se compile pas?
scala
scala-placeholder-syntax
Jeff Storey
la source
la source
myStrings.foreach (println)
Réponses:
Il s'étend à:
Tu veux:
La syntaxe d'espace réservé pour les fonctions anonymes remplace la plus petite expression contenant possible par une fonction.
la source
myStrings.foreach(println(_))
inclut automatiquementtoString
pour l'argument àprintln
?