我尝试返回一般枚举值并确定其中一个参数。
这样的东西,给出了这个枚举:
enum {
state1(apple: Apple, color: Color)
state2(pear: Pear, color: Color)
...
}
我希望能够返回一个州,并确定其中的一个州。值。
...
switch state {
case .state1(_, _), .state2(_, _):
return state(...blue color...)
}
这可能吗?
谢谢!
答案 0 :(得分:0)
我认为您能够获得的最接近的是为case
的{{1}}个case
设置切换enum
。然后使用模式匹配来获取要保留的值并重新构建所需的值。
这样的事情:
enum Fruit {
case state1(apple: Int, color: String)
case state2(pear: Int, color: String)
}
var state = Fruit.state2(pear: 5, color: "green")
var newState: Fruit
switch state {
case .state1(let x, _):
newState = .state1(apple: x, color: "blue")
case .state2(let x, _):
newState = .state2(pear: x, color: "blue")
}
print(newState)
state2(pear: 5, color: "blue")