如果不使用值

时间:2015-09-21 09:25:24

标签: 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编译器抛出一个错误,抱怨元组模式不匹配。

如何在不使用值的情况下匹配枚举,或者获得一堆无意义的警告/错误,其推荐的修复程序实际上没有修复任何内容?

1 个答案:

答案 0 :(得分:1)

func f() -> Bool {
    switch g() {
    case .AsInt:
        return true
    case .AsBool:
        return false
    }
}