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)")
}
Какой разделитель следует использовать для разделения интервалов внутри кортежа, иначе он не будет работать на коммутаторы кортежей, и я должен использовать переключатель внутри коммутатора? Спасибо!
Ответы
Ответ 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)")
}