wake-up-neo.com

Scala Unterstrich - FEHLER: fehlender Parametertyp für erweiterte Funktion

Ich weiß, dass es dazu einige Fragen gab, aber ich habe ein einfaches Beispiel erstellt, von dem ich dachte, dass es funktionieren sollte, aber es funktioniert immer noch nicht und ich bin mir nicht sicher, warum ich das verstehe

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))

Kann jemand erklären, warum die zweite Anweisung nicht kompiliert wird?

80
Jeff Storey

Es erweitert sich zu:

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

Sie wollen:

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

Die Platzhaltersyntax für anonyme Funktionen ersetzt den kleinstmöglichen enthaltenen Ausdruck durch eine Funktion.

105
retronym