【发布时间】:2020-03-09 03:33:15
【问题描述】:
我有一个符合 Hashable 的结构。这个模型放在Set。当我检查集合是否包含模型时,它会随机返回真/假。这是为什么呢?
enum Feature: String {
case a
case b
}
struct FeatureState: Hashable {
let feature: Feature
let isEnabled: Bool
}
extension FeatureState: Equatable {
static func == (lhs: FeatureState, rhs: FeatureState) -> Bool {
lhs.feature == rhs.feature
}
}
let fs1 = FeatureState(feature: .a, isEnabled: false)
let fs2 = FeatureState(feature: .a, isEnabled: true)
featureStates.insert(fs1)
print(featureStates.contains(fs2)) // sometimes true, sometimes false
【问题讨论】: