"的目的是什么?-6ren"> "的目的是什么?-我正在关注 Apple 的电子书“The Swift Programming Language”。其中,有一个创建函数的代码示例。这个函数在末尾使用“-> Bool”,我理解这意味着该函数将有一个 b-6ren">
gpt4 book ai didi

swift - 在 Swift 中对变量使用 "->"的目的是什么?

转载 作者:搜寻专家 更新时间:2023-11-01 06:22:33 25 4
gpt4 key购买 nike

我正在关注 Apple 的电子书“The Swift Programming Language”。其中,有一个创建函数的代码示例。这个函数在末尾使用“-> Bool”,我理解这意味着该函数将有一个 bool 输出。

要配置函数,它使用两个输入变量。其中一个变量是“Int -> Bool”(见下面的代码)。也许稍后在电子书中对此有更好的解释,但我的搜索无法完全解释我如何以及为什么要在变量上使用“->”命名法。

func hasAnyMatches(list: [Int], condition: Int -> Bool) -> Bool {
for item in list {
if condition(item) {
return true
}
}
return false
}
func lessThanTen(number: Int) -> Bool {
return number < 10
}
var numbers = [20, 19, 10, 12]
hasAnyMatches(numbers, lessThanTen)

由于这并没有真正解释,我阅读代码示例的最佳方式是“条件”变量实际上并不是一个变量,而是一个函数本身。因此我阅读代码的方式如下:

“条件是一个接受整数并返回 bool 变量的函数。”

这个假设是否正确?

谢谢。

最佳答案

你的假设是正确的。在 Swift 中,函数可以作为参数在函数内传递。

据我所知,您引用的代码来自 Apple 的“The Swift Programming Language”电子书。在附近,它指出:

“A function can take another function as one of its arguments.”

基本上,这里发生的事情是您创建了一个函数“lessThanTen()”,它接受一个 Int 参数并返回一个 Bool 值。接下来创建另一个函数“hasAnyMatches”,它在自身内部使用一个函数(即 Int -> Bool)。如果您有采用和返回相同值类型但具有不同目的的不同函数,这将很有用。

然后您可以像传递变量一样将原始函数作为参数传递。该函数可以采用任何形式,只要它满足第二个函数指定的条件(即“条件:Int -> Bool”)。

总之,在第二个函数中有一行

if condition(item) {

基本上,这一行运行函数“condition”,实际上,它只是作为参数传递的另一个函数。我可以创建任何接受 Int 并返回 Bool 值的函数,然后将其传递给“hasAnyMatches”。

如果您想阅读更多相关内容,我建议您进一步阅读“The Swift Programming Language”中标题为“Functions”的章节。它指出:

“You can use a function type such as (Int, Int) -> Int as a parameter type for another function. This enables you to leave some aspects of a function’s implementation for the function’s caller to provide when the function is called.” (Pg. 141)

我希望这能回答您的问题:)

关于swift - 在 Swift 中对变量使用 "->"的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31306313/

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