gpt4 book ai didi

function - 用户在 Swift 中定义的 chooseStepFunction() 中的两个箭头的目的是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 21:51:35 24 4
gpt4 key购买 nike

这里最后一个函数的返回类型中的双箭头表示什么?

它们是用来表示两个不同的返回值吗?

如果是这样,如果 chooseStepFunction() 中的函数类型不同,您如何知道箭头的顺序?例如,如果 stepForward() 返回一个 String

func stepForward(input: Int) -> Int{
return input + 1
}

func stepBackward(input: Int) -> Int{
return input - 1
}

func chooseStepFunction(backwards: Bool) -> (Int) -> Int{
return backwards ? stepBackward: stepForward
}

最佳答案

给定:

(x) -> (y) -> z

你会这样读:

A function which accepts x and returns a function which accepts y and returns z.

所以在这种情况下,chooseStepFunction 是一个接受 bool 并返回一个接受 int 并返回 int 的函数。这是右结合的,因此您可以将其理解为:

(backwards: Bool) -> ((Int) -> Int)

如果您还记得第一组括号(Bool 周围)不是特别特殊,那么阅读这篇文章就容易多了。它们就像第二组(围绕 Int)。 (实际上不需要括号。(Int) -> IntInt -> Int 相同。)

意识到这一点会在您遇到柯里化(Currying)时有所帮助:

func addTwoNumbers(a: Int)(b: Int) -> Int

这实际上是一样的:

(a: Int) -> (b: Int) -> Int

接受一个 int 并返回一个函数的函数接受一个 int 并返回一个 int。

关于function - 用户在 Swift 中定义的 chooseStepFunction() 中的两个箭头的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24126214/

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