英文好的看这里 ==>Swift 柯里化
嘿嘿,利用Swift
的特性
class 银行账户{
var 总金额: Double = 0.0
func 存钱(金额:Double){
总金额 += 金额
}
func 余额() {
print(总金额)
}
}
这样就声明了一个名为银行账户
的类,这个类有两个函数,分别为存钱
和输出余额
随后,我们弄出一个银行账户的实例。
var 账户实例 = 银行账户()
账户实例.存钱(100)
账户实例.余额()
在playground
中可以实时看到执行结果,如下图
到这一步,一切都很顺利。
然后
var depositor = 银行账户.存钱
depositor(账户实例)(100)
账户实例.余额()
执行结果如下 :
Code 2发现了么,这两段是等价的。
在后一段中,我们给变量depositor
赋值的是一个函数,就像C语言中的指向函数的指针类似的意思。Swift中的实例的方法==
类的方法,并且这个方法以实例作为参数,并且将函数返回,这个函数还能应用在该实例上。
所以
银行账户.存钱(账户实例)(100)
这个就不难理解了。执行结果就是给账户实例
再存100
块
网友评论