美文网首页
swift中的柯里化(Currying)

swift中的柯里化(Currying)

作者: 梁森的简书 | 来源:发表于2021-03-26 11:38 被阅读0次

    函数作为函数的返回值

    要实现返回两个整数之和的功能
    方法实现:

    typealias InFun = (Int) -> Int
    func sumFuntion(a: Int, b: Int) -> Int {
        return a + b
    }
    
    func returnFunction(a: Int) -> InFun {
        return { b in
            return a + b
        }
    }
    

    方法调用:

    let sum = returnFunction(a: 1)(1)
    print("😊:\(sum)")
           
    let sum1 = sumFuntion(a: 1, b: 1)
    print("😄:\(sum1)")
    

    sumFuntion方法是我们普通的实现方式,returnFunction是我们的柯里化实现方式,一个函数的返回值是另一个函数。

    柯里化好在哪里?

    可避免一个函数中参数过多

    相关文章

      网友评论

          本文标题:swift中的柯里化(Currying)

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