我有一个关联值的枚举,为了测试的目的,我想使其相等,但不知道这个模式如何处理带有多个参数的枚举情况.
例如,总结如下,我知道使标题相等的语法.对于包含多个不同类型值的选项,这将如何工作?
enum ViewModel {
case heading(String)
case options(id: String, title: String, enabled: Bool)
}
func ==(lhs: ViewModel, rhs: ViewModel) -> Bool {
switch (lhs, rhs) {
case (let .heading(lhsString), let .heading(rhsString)):
return lhsString == rhsString
case options...
default:
return false
}
}
我知道Swift 4.1可以为我们合成Equalable的一致性,但目前我无法更新到这个版本.