在不使用值的情况下无法在枚举上匹配

  • 本文关键字:枚举 情况下 swift2
  • 更新时间 :
  • 英文 :


我已经更新了我的项目,使用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
    }
}

最新更新