比方说,我们做匿名函数中的println在斯卡拉
object Test {
def main(args: Array[String]){
println(() => "2pac") // passing anon function
println((() => "shakur")()) // passing anon function, with empty args
println(biggie) // passing named function, no args
}
def biggie = "smalls"
}
,将打印出来
<function>
shakur
smalls
为什么匿名函数,与同类型的签名命名功能,需要明确的空ARGS?为什么biggie
在打印时被调用,但2pac
函数没有?
谢谢,这清除了事情! – TranquilMarmot 2013-03-04 22:31:49
+1。很好的详细。但是你应该用“空方法”来代替“空功能”。 “方法”和“功能”的概念通常可以互换使用,区别通常并不重要,但在这里它确实:即使(空)参数列表丢失,也不会自动应用空函数,而一个空方法将会(如果在预计除函数以外的某种类型的情况下使用)。 Plus方法区分nullary方法和no-arg方法,而函数只能是nullary(无参数函数不存在于scala中)。 – 2013-03-05 00:39:41
'def's不是函数,它们是方法。 – pedrofurla 2013-03-05 01:57:38