gpt4 book ai didi

swift - SwiftUI 中的 firstIndex 是什么 - Swift

转载 作者:行者123 更新时间:2023-12-04 15:43:52 26 4
gpt4 key购买 nike

在遵循有关 SwiftUI 的 Apple 教程时,我发现了这一点:

1| var landmarkIndex: Int {
2| userData.landmarks.firstIndex(where: { $0.id == landmark.id })!
3| }

教程里面的第 2 行没有解释得这么好,他们只说:
“在访问或更新地标的收藏状态时,您将使用地标索引,以便您始终访问该数据的正确版本。”

我无法理解什么是 firstIndex 以及我通过编写“$0.id ==landmark.id”来访问什么
我为什么要创建这个变量?

非常感谢 -
妮可

Apple tutorial about SwiftUI

最佳答案

如果你要冗长地写这个,它看起来像这样:

var landmarks: [LandMark] = []
for l in userData.landmarks {
if isLandMarkEqual(l, landmark) {
landmarks.append(l)
}
}

func isLandMarkEqual(_ landmarkOne: LandMark, _ landmarkTwo: LandMark) -> Bool {
return landmarkOne.id == landmarkTwo.id
}

我们迭代 userData.landmarks 并在每个元素上调用一个函数(用 {} 表示)。然后我们得到满足函数中规定条件的元素第一次出现的索引(也称为闭包)。

如果我们只是简单地返回 true 例如
userData.landmarks.firstIndex(where: { true })!

那么每个元素的条件都为真,因此我们只会得到集合中的第一个索引,即 0。

$0 只是函数/闭包中第一个参数的简写。在我们的示例中,这相当于地标一。

关于swift - SwiftUI 中的 firstIndex 是什么 - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56695346/

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