美文网首页
100Tips - 柯里化(Currying)

100Tips - 柯里化(Currying)

作者: FansX | 来源:发表于2016-10-08 14:21 被阅读0次
    • 柯里化的含义

    柯里化(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)
    ```


    • 柯里化的实际应用

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

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

    相关文章

      网友评论

          本文标题:100Tips - 柯里化(Currying)

          本文链接:https://www.haomeiwen.com/subject/hkpuyttx.html