100Tips - 柯里化(Currying)

  • 柯里化的含义

柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。


  • Swift中的柯里化
    1. example1
// num + 1的函数
func addOne(num: Int) -> Int
 {
    return num + 1
}
// 将 +1 变成自定义 +adder的函数
func addTo(adder: Int) ->  Int -> Int {
    return { num in
        return num + adder
    }
}
// 将num+1的需求模块化为两个传单个参数的函数
let addOne(num: Int) = addTo(1)
addOne(2)
// 柯里化
addTo(1)(2)
  1. example2

class Currying {
func add(a: Int, b: Int, c: Int) -> Int
{
return a + b + c
}
// 手动实现柯里化
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
}
}
}
// 系统自定义柯里化
func addCur(a: Int)(b: Int)(c: Int) -> Int {
return a + b + c
}
}
//
let currying = Currying()
currying.add(1, b: 2, c: 3)
// 一个一个传参的柯里化
currying.addCur(1)(b: 2)(c: 3)
```


  • 柯里化的实际应用

部分开发中相似的流程可以用柯里化的设计思想 模块化,然后一个一个模块拼接

后续会在项目中使用并附上代码, 待更新。。。。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容