gpt4 book ai didi

xcode - 为什么这个 Swift 代码片段可以编译?它是如何工作的?

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

今天,我看到了一些示例 Swift 2.0 (Xcode 7.2) 代码,可以概括为:

let colours = ["red", "green", "blue"]
let r1 = colours.contains("The red one.".containsString) // true
let y1 = colours.contains("The yellow one.".containsString) // false

由于 containsString() 函数缺少括号,我预计会出现编译错误。事实上,我什至不确定递归是如何工作的。字符串是通过 colours 数组中的每个项目递归还是相反?

任何解释表示赞赏。

最佳答案

你实际上在做的是调用方法.contains(predicate: String -> Bool)(实际的方法可以抛出,但这与这里无关)

这意味着您要询问数组 colours 是否包含符合该谓词的元素,即 "The red one.".containsString。所以数组正在一个一个地检查它的元素,并根据那个谓词检查它。如果找到,则返回 true,否则返回 false。

上面的代码是这样做的:

"The red one.".containsString("red")
"The red one.".containsString("green")
"The red one.".containsString("blue")

"The yellow one.".containsString("red")
"The yellow one.".containsString("green")
"The yellow one.".containsString("blue")

它会检查它是否在某处得到了 true

关于xcode - 为什么这个 Swift 代码片段可以编译?它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34722373/

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