gpt4 book ai didi

swift - 在 Swift 中搜索集合

转载 作者:行者123 更新时间:2023-11-28 07:56:43 25 4
gpt4 key购买 nike

我有类似下面的内容

struct ht : Hashable {
var x : Int
var y : Int
var z : Int
//Edit added following func following Ahmad's comment
var hashValue: Int { return (x+y+z) }

static func == (lhs: ht, rhs: ht) -> Bool
{
return lhs.x == rhs.x
&& lhs.y == rhs.y
&& lhs.z == rhs.z
}
}

let defaultX = 4

let searchForX = 7
//let searchForX = 1000000

var ss : Set<ht> = [ ht(x:1,y:2,z:3), ht(x:4,y:5,z:6), ht(x:7, y:8, z:100), ht(x:9, y:19, z:12)]

Swift 是否具有类似 LINQ 的功能,我可以在其中搜索集合 ss 以检索与 searchForX = 7 匹配的结构,如上所示返回 (7, 8, 100)?如果 searchForX = 1000000 我希望它返回 (4, 5, 6),所以失败时返回 defaultX = 4 的值

我当前的代码使用循环。在 C# 中,您可以使用 LINQ 并指定 .FirstOrDefault(...)。

这在 Swift 中可能吗?

谢谢

最佳答案

Swift 不是我真正喜欢的东西,但类似于下面代码的三元运算符可能会让你前进。

var answer = ss.first(where: { $0.x == searchForX }) ?? ss.first(where: { $0.x == defaultX })

问候

迈克

关于swift - 在 Swift 中搜索集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47855558/

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