gpt4 book ai didi

Swift:Curry 函数的好处

转载 作者:可可西里 更新时间:2023-11-01 01:06:20 25 4
gpt4 key购买 nike

我正在尝试掌握 curry 函数背后的概念。下面是代码:

class MyHelloWorldClass {

func helloWithName(name: String) -> String {
return "hello, \(name)"
}
}

我可以创建一个指向类的 helloWithName 函数的变量:

let helloWithNameFunc = MyHelloWorldClass.helloWithName
// MyHelloWorldClass -> (String) -> String

我的新 helloWithNameFuncMyHelloWorldClass -> (String) -> String 类型,一个 function 接受我的 classreturns 另一个 function 接受一个 string 值并返回一个 string 值.

所以我实际上可以这样调用我的函数:

let myHelloWorldClassInstance = MyHelloWorldClass()

helloWithNameFunc(myHelloWorldClassInstance)("Mr. Roboto")
// hello, Mr. Roboto

来源:我从这个 site 中获取这段代码

使用上面的curry函数有什么好处呢?什么时候需要调用一个采用其类实例的函数,该函数采用传递的后续参数。

最佳答案

问题是给出的例子并不是柯里化(Currying)的例子。这就是为什么您看不到其中的任何值(value)。

这是柯里化(Currying)的一个更好的例子:

class MyHelloWorldClass {
//Function that takes two arguments
func concatenateStrings(string1: String, string2: String) {
return "\(string1)\(string2)"
}
//Curried version of concatenateStrings that takes one argument.
func helloWithName(name: String) -> String {
return concatenateStrings("hello, ", name)
}
}

这是函数变量如何在 Swift 中柯里化(Currying)的一个更好的例子:http://oleb.net/blog/2014/07/swift-instance-methods-curried-functions/

关于Swift:Curry 函数的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28597324/

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