使用guard或Swift中的if case从枚举中提取值
我已经列举了一些案例:使用guard或Swift中的if case从枚举中提取值,swift,Swift,我已经列举了一些案例: case one(value: myClassOne) case two(value: myClassTwo) 我想检查该枚举的值。现在我以: switch self.model! { case .one: // Great, my case here default: break } 但我想做一些类似的事情: if case self.model(let value) is myClassOne { // do smth } // Not compi
case one(value: myClassOne)
case two(value: myClassTwo)
我想检查该枚举的值。现在我以:
switch self.model! {
case .one:
// Great, my case here
default:
break
}
但我想做一些类似的事情:
if case self.model(let value) is myClassOne { // do smth } // Not compiling
有没有简单的方法来提取枚举值并检查它的某些条件或类相等性?这是正确的语法:
if case .one(value: let value) = self.model {
// do something with `value`
}
guard case .one(value: let value) = self.model else {
//handle case where self.model != .one
}
// do something with `value`
你是说这个吗在您的例子中,它应该类似于
如果case let.one(value)=self.model{use value…}
@MartinR我已经看过这个问题,但我不明白,如果case let.AsInt(num)=x{print(num)}没有引用存储枚举的变量,在我的例子中是-self.model。你能提供类似的例子吗?