Подтвердить что ты не робот

Swift: несколько интервалов в одном корпусе с использованием кортежа

Введите код:

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)")
}

Какой разделитель следует использовать для разделения интервалов внутри кортежа, иначе он не будет работать на коммутаторы кортежей, и я должен использовать переключатель внутри коммутатора? Спасибо!

4b9b3361

Ответ 1

Вы должны указать несколько кортежей на верхнем уровне:

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)")
}