比方說,我們做匿名函數中的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