【发布时间】:2014-05-05 09:47:03
【问题描述】:
有几次我看到这样的 Scala 代码:
object Doer{
def doStuff(op: => Unit) {
op
}
}
以这种方式调用:
Doer.doStuff{
println("Done")
}
对我来说奇怪的是,一个函数是如何传递给另一个函数的,只是花括号之间的一段代码。甚至没有通常标记参数列表开始和结束的括号。
这个 Scala 语法/功能的名称是什么?在什么情况下我可以使用它?它记录在哪里?
【问题讨论】:
-
我认为它只是一种语法糖。圆括号不在这里,因为如果函数只有一个参数,您可以省略圆括号。而花括号内的这段代码就是提供匿名函数的方式。
-
@Ashalynd 否。您可以致电
f(args)或f {block},但不能省略标点符号,除非是中缀x op y。该区块只是{ case x => }的匿名乐趣。