柯里化簡(jiǎn)介
柯里化指的是從一個(gè)多參數(shù)函數(shù)變成一連串單參數(shù)函數(shù)的變換
函數(shù)演示
func add(input: Int) -> (Int) -> Int {
return { value in
return input + value
}
}
代碼實(shí)現(xiàn)
let addTwo = add(input: 100)
let output = addTwo(8)
補(bǔ)充
- 這種方式是柯里化的一個(gè)說(shuō)明
- 函數(shù)實(shí)現(xiàn)的效果就是每次你輸入一個(gè)數(shù)都會(huì)幫你默認(rèn)加8 ,如果后續(xù)你想改變只需要改變8這個(gè)就可以達(dá)到結(jié)果,不需要在函數(shù)中做操作
額外的演示
-
先聲明一個(gè)銀行卡
class BankCard {
/// 余額
var balance : Double = 0.0
/// 存錢方法
func deposit(amount: Double) {
balance += amount
print("balance = \(balance)")
}
}
-
結(jié)果/我們每次存錢都會(huì)加上上次的數(shù)據(jù)
/// 正常的使用
let card = BankCard()
card.deposit(amount: 100)
let deposit : (BankCard)->(Double) ->() = BankCard.deposit
let depositIntoCard = deposit(card)
depositIntoCard(100)
deposit(card)(88)