Swift:使用元组的单个switch-case中的多个间隔

时间:2014-08-06 16:06:53

标签: ios swift switch-statement tuples xcode6

拥有如下代码:

switch (indexPath.section, indexPath.row) {
    case (0, 1...5): println("in range")
    default: println("not at all")
}

问题是我可以在第二元组值中使用多个区间吗?

对于非元组切换,它可以很容易地完成,如

switch indexPath.section {
case 0:
    switch indexPath.row {
    case 1...5, 8...10, 30...33: println("in range")
    default: println("not at all")
    }
default: println("wrong section \(indexPath.section)")
}

我应该使用哪个分隔符来区分元组内部的间隔,或者它不能用于元组开关,我必须在开关内部使用开关?谢谢!

1 个答案:

答案 0 :(得分:132)

您必须在顶层列出多个元组:

switch (indexPath.section, indexPath.row) {
    case (0, 1...5), (0, 8...10), (0, 30...33):
        println("in range")
    case (0, _):
        println("not at all")
    default:
        println("wrong section \(indexPath.section)")
}