Swift无法确定切换条款是否详尽无遗

时间:2014-07-05 22:17:42

标签: swift

这是一个人为问题,因为我想更详细地了解swift。 swift编译器抱怨以下内容并非详尽无遗。当然,在一般情况下,它无法确定案例陈述是否详尽无遗。我该怎么办? 告诉编译器我的列表是详尽无遗的,例如以下情况?

let point = (2, 2) 

switch point {    
    case let (x, y) where x == y:
        println("on the x=y line")
    case let (x, y) where x != y:
        println("somewhere else off x=y line") 
}

是添加空默认值的唯一选项:个案吗?

2 个答案:

答案 0 :(得分:1)

  

是添加空默认值的唯一选项:个案吗?

此时,是的。这是一个编译器错误,我们目前必须解决这个问题。如果我是你,我肯定会file a Radar详细说明你的发现。

答案 1 :(得分:0)

我正在学习Swift,并且我已经找到了以下解决方案的简短摘要:

let point = (2, 2)

switch point {
case let (x, y) where x == y:
    print("on the x=y line")
case let (x, y): // Otherwise where x != y:
    print("somewhere else off x=y line")
}

我知道,它不是编译器进行穷举检查的解决方案,但它是一种避免无用default子句的方法。