Sé que ha habido bastantes preguntas sobre esto, pero he creado un ejemplo simple que pensé que debería funcionar, pero aún no funciona y no estoy seguro de entender por qué.
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))
¿Alguien puede explicar por qué la segunda declaración no se compila?
scala
scala-placeholder-syntax
Jeff Storey
fuente
fuente
myStrings.foreach (println)
Respuestas:
Se expande a:
Usted quiere:
La sintaxis de marcador de posición para funciones anónimas reemplaza la expresión contenedora más pequeña posible con una función.
fuente
myStrings.foreach(println(_))
se incluye automáticamentetoString
para el argumentoprintln
?