gpt4 book ai didi

快速设置交、并、减

转载 作者:行者123 更新时间:2023-11-30 10:05:39 26 4
gpt4 key购买 nike

有谁知道如何用用户定义的类实现集合操作,并以其属性作为操作条件。例如:

class myClass {
var figure: Int!
}

let classObj1 = myClass()
classObj1.figure = 1

let classObj2 = myClass()
classObj2.figure = 2

let classObj3 = myClass()
classObj3.figure = 1

let set1: Set = [classObj1]
let set2: Set = [classObj2, classObj3]

有没有类似的方法:(伪代码)

set2.substract(set1) {s2, s1 in s2.figure == s1.figure}

...所以预期结果是[classObj2]

非常感谢您的建议!

最佳答案

当然。通过 == 比较 figure 值的方式使您的 MyClass 符合 Hashable 和 Equatable。示例:

class MyClass : Hashable {
var figure: Int
init(f:Int) {figure = f}
var hashValue : Int {return figure}
}
func ==(lhs:MyClass, rhs:MyClass) -> Bool {
return lhs.figure == rhs.figure
}

关于快速设置交、并、减,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36121141/

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