說,第一,我有這樣的功能:在斯卡拉,是一個函數,它採用與另一個函數作爲參數的函數不同的名稱調用參數?
def number5()={
println("number 5 starting")
println("number 5 exiting")
5
}
然後:
def giveMeCallByNameParameter(f: =>Int)={
println("starting")
f
println("exiting")
}
當我把它叫做:
giveMeCallByNameParameter(number5)
我得到這樣的結果:
starting
number 5 starting
number 5 exiting
exiting
如果我也有這樣的功能:
def giveMeAnotherFunction(f:()=>Int)={
println("starting")
f()
println("exiting")
}
,我把它叫做:
giveMeAnotherFunction(number5)
我得到了相同的結果:
starting
number 5 starting
number 5 exiting
exiting
那麼,它們有什麼不同呢?除了有或沒有括號之外的區別?
如果他們沒有不同?那麼,爲什麼我們會用名字命名這個術語呢?
注意:這些是方法,而不是函數。事實上,名稱參數和函數參數之間的區別之一是函數不能具有名稱參數,只能使用方法。 – 2014-09-24 16:17:00