gpt4 book ai didi

ios - Swift: 'Currying' 和返回函数的函数有什么区别?

转载 作者:搜寻专家 更新时间:2023-10-31 08:20:39 24 4
gpt4 key购买 nike

//  function 1------- Currying   
func increment (incrementBy x: Int)(y: Int) -> Int {
return x + y
}

// function 2------- The function that return a function
func increment(incrementBy x: Int) -> ((Int) ->Int){
func incrementFunc(y: Int){
return x + y
}
}

这两个函数做同样的事情,不是吗?我可以用同样的方式使用它们。像这样:

let incrementFunc = increment(incrementBy: 10)
var number = 10
number = incrementFunc(number)

所以,我很困惑,他们有什么区别?每种方式的优点是什么?

最佳答案

您的第一个示例是第二个示例的“语法糖”,与 [Int] 类似是 Array<Int> 的简写.他们的意思相同,行为方式相同。

但是,我应该指出这种语法糖很快就会消失。 This proposal ,由 Swift 编译器工程师编写并被 Swift 开发团队接受,表示速记柯里化(Currying)语法将不再是该语言的一部分。相反,所有柯里化(Currying)都将按照您编写的第二个示例的方式完成。

关于ios - Swift: 'Currying' 和返回函数的函数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34890265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com