scala underscores

Subrayado de Scala-ERROR: tipo de parámetro faltante para la función expandida



underscores (1)

Sé que ha habido bastantes preguntas sobre esto, pero he creado un ejemplo simple que pensé que debería funcionar, pero todavía 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 compila?


Se expande a:

myStrings.foreach(println(x => x.toString))

Usted quiere:

myStrings.foreach(x => println(x.toString))

La sintaxis del marcador de posición para funciones anónimas reemplaza la expresión que contiene más pequeña posible con una función.