nsc*_*hum 6 pattern-matching swift
对不起,"这不应该工作吗?" 题.但我无法想出一个更好的方式来表达这一点.
enum MyEnum {
case A, B, C
}
let tuple = (MyEnum.C, MyEnum.A)
var x: String
switch tuple {
case (.A, _):
x = "(A, something)"
case (_, .A):
x = "(something, A)"
case (_, .B):
x = "(something, B)"
case (.C, .C):
x = "(C, C)"
default:
x = "default"
}
x // -> "default"
Run Code Online (Sandbox Code Playgroud)
x
求值为"default"
,表示采用了默认分支.
但是,我期待"(something, A)"
和第二个案例陈述相匹配.根据我的理解,(_, .A)
应该匹配第一个元组元素和.A
第二个元素中的任何内容.
如果我将(_, .A)
表壳移到顶部,它会按照我的预期进行匹配.其他元组也匹配我期望的位置.
我错过了什么?为什么这不符合第二种情况?