- 柯里化的含義
柯里化(Currying)是把接受多個(gè)參數(shù)的函數(shù)變換成接受一個(gè)單一參數(shù)(最初函數(shù)的第一個(gè)參數(shù))的函數(shù),并且返回接受余下的參數(shù)且返回結(jié)果的新函數(shù)的技術(shù)塔逃。
- Swift中的柯里化
- example1
// num + 1的函數(shù)
func addOne(num: Int) -> Int
{
return num + 1
}
// 將 +1 變成自定義 +adder的函數(shù)
func addTo(adder: Int) -> Int -> Int {
return { num in
return num + adder
}
}
// 將num+1的需求模塊化為兩個(gè)傳單個(gè)參數(shù)的函數(shù)
let addOne(num: Int) = addTo(1)
addOne(2)
// 柯里化
addTo(1)(2)
- example2
class Currying {
func add(a: Int, b: Int, c: Int) -> Int
{
return a + b + c
}
// 手動(dòng)實(shí)現(xiàn)柯里化
func add(a: Int) -> (b: Int) -> (c: Int) -> Int
{
return { (b: Int) -> (c: Int) -> Int in
return { (c: Int) -> Int in
return a + b + c
}
}
}
// 系統(tǒng)自定義柯里化
func addCur(a: Int)(b: Int)(c: Int) -> Int {
return a + b + c
}
}
//
let currying = Currying()
currying.add(1, b: 2, c: 3)
// 一個(gè)一個(gè)傳參的柯里化
currying.addCur(1)(b: 2)(c: 3)
```
- 柯里化的實(shí)際應(yīng)用
部分開發(fā)中相似的流程可以用柯里化的設(shè)計(jì)思想 模塊化,然后一個(gè)一個(gè)模塊拼接
后續(xù)會(huì)在項(xiàng)目中使用并附上代碼讹蘑, 待更新蓄诽。。。辈毯。坝疼。。