英文好的看這里 ==>Swift 柯里化
嘿嘿,利用Swift的特性
class 銀行賬戶(hù){
var 總金額: Double = 0.0
func 存錢(qián)(金額:Double){
總金額 += 金額
}
func 余額() {
print(總金額)
}
}
這樣就聲明了一個(gè)名為銀行賬戶(hù)的類(lèi),這個(gè)類(lèi)有兩個(gè)函數(shù),分別為存錢(qián)和輸出余額
隨后,我們弄出一個(gè)銀行賬戶(hù)的實(shí)例。
var 賬戶(hù)實(shí)例 = 銀行賬戶(hù)()
賬戶(hù)實(shí)例.存錢(qián)(100)
賬戶(hù)實(shí)例.余額()
在playground中可以實(shí)時(shí)看到執(zhí)行結(jié)果,如下圖

Code 1
到這一步,一切都很順利。
然后
var depositor = 銀行賬戶(hù).存錢(qián)
depositor(賬戶(hù)實(shí)例)(100)
賬戶(hù)實(shí)例.余額()
執(zhí)行結(jié)果如下 :

Code 2
發(fā)現(xiàn)了么,這兩段是等價(jià)的。
在后一段中,我們給變量depositor賦值的是一個(gè)函數(shù),就像C語(yǔ)言中的指向函數(shù)的指針類(lèi)似的意思。Swift中的實(shí)例的方法==類(lèi)的方法,并且這個(gè)方法以實(shí)例作為參數(shù),并且將函數(shù)返回,這個(gè)函數(shù)還能應(yīng)用在該實(shí)例上。
所以
銀行賬戶(hù).存錢(qián)(賬戶(hù)實(shí)例)(100)
這個(gè)就不難理解了。執(zhí)行結(jié)果就是給賬戶(hù)實(shí)例再存100塊

Code 3