Welche Regeln gelten für das Unterstreichen, um anonyme Funktionen zu definieren?
Ich benutze_
als Platzhalter für die Erstellung anonymer Funktionen, und das Problem ist, dass ich nicht vorhersagen kann, wie Scala meinen Code umwandeln wird. Genauer gesagt, es wird fälschlicherweise bestimmt, wie "groß" die von mir gewünschte anonyme Funktion ist.
List(1,2,3) foreach println(_:Int) //error !
List(1,2,3) foreach (println(_:Int)) //work
List(1,2,3) foreach(println(_:Int)) //work
Using-Xprint:typer
Ich kann sehen, dass Scala die erste Funktion in "eine große anonyme Funktion" umwandelt:
x$1 => List(1,2,3) foreach(println(x$1:Int))
the arbeitete 2. 3. sindrichti Transformation in das, was ich will.
... foreach (x$1 => println(x$1:Int))
Warum das? Was ist die Regel