En passant de la fonction en tant que bloc de code entre accolades

Quelques fois, j'ai vu un Scala code comme ça:

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

Invoquée de cette façon:

Doer.doStuff{
      println("Done")
}

Ce qui est étrange pour moi, c'est la façon dont une fonction est passé à une autre fonction que seulement un bloc de code entre accolades. Et il n'y a pas de parenthèses, qui normalement marquer le début et la fin de la liste d'arguments.

Quel est le nom de Scala syntaxe/fonction? Dans ce cas, je peux l'utiliser? Où est-il documenté?

  • Je pense que c'est juste un sucre syntaxique. La ronde des parens ne sont pas ici, parce que vous pouvez omettre ronde parens si la fonction n'a qu'un seul argument. Et le morceau de code à l'intérieur d'accolades est la façon de fournir une fonction anonyme.
  • Pas de. Vous pouvez appeler f(args) ou f {block} mais vous ne pouvez pas omettre le signe de ponctuation à l'exception comme infixe x op y. Le bloc est un anon amuser comme { case x => }.