swift中的柯里化(Currying)

2021-03-26  本文已影响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是我们的柯里化实现方式,一个函数的返回值是另一个函数。

柯里化好在哪里?

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

上一篇 下一篇

猜你喜欢

热点阅读