Die übergabe der Funktion als block von code zwischen den geschweiften Klammern

Ein paar mal sah ich ein Scala-code so:

object Doer{
   def doStuff(op: => Unit) {
      op
   }
}

Aufgerufen, in dieser Weise:

Doer.doStuff{
      println("Done")
}

Was seltsam für mich ist, wie eine Funktion übergeben in eine andere Funktion, als nur einen block von code zwischen den geschweiften Klammern. Und es gibt auch keine Klammern, die normalerweise markieren den Anfang und das Ende der Argumentliste.

Was ist der name dieses Scala-syntax/Funktion? In welchen Fällen kann ich es verwenden? Wo ist es dokumentiert?

  • Ich denke, es ist nur syntaktischer Zucker. Die Runden Klammern sind nicht hier, weil du weglassen können Runde Klammern, wenn die Funktion nur ein argument. Und das Stück code innerhalb der geschweiften Klammern ist die Möglichkeit, eine anonyme Funktion.
  • Nein. Sie können rufen Sie f(args) oder f {block} aber man kann Sie nicht weglassen der Satzzeichen, außer als infix x op y. Der block ist ein anon nur Spaß, wie { case x => }.
Schreibe einen Kommentar