我已经更新了我的项目,使用Swift 2。我遇到过一个相当愚蠢的开关情况。下面是一个简单的例子。
enum X {
case AsInt(Int)
case AsBool(Bool)
}
g() -> X {
// ...
}
f() -> Bool {
let local = g();
switch local {
case .AsInt(let x)
return true;
case .AsBool(let bool)
return false;
}
}
Swift编译器报错(警告)x
是未使用的,它是。它告诉我用_
代替。好吧,我把它换成了_
。然后Swift编译器报错(警告)let
绑定没有绑定变量。好吧,我把它去掉了。然后Swift编译器抛出一个错误,抱怨元组模式不匹配。
如何在枚举上匹配而不使用该值或得到一堆毫无意义的警告/错误,其建议的修复实际上并没有修复任何东西?
func f() -> Bool {
switch g() {
case .AsInt:
return true
case .AsBool:
return false
}
}