对不起,这不行吗?"题。但我无法找到更好的方式来表达这一点。
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"
x
评估为"default"
,这意味着采用了默认分支。
然而,我期待"(something, A)"
和第二个案例陈述相匹配。根据我的理解,(_, .A)
应匹配第一个元组元素中的任何内容,并在第二个元素中匹配.A
。
如果我将(_, .A)
案例移到顶部,则会按照我的预期进行匹配。其他元组也匹配我期望的位置。
我错过了什么?为什么第二种情况不匹配?
答案 0 :(得分:1)
此行为已在测试版3中得到纠正。无论订单如何,它现在都会显示(Something, A)
。