web-dev-qa-db-fra.com

Swift: Intervalles multiples dans un seul boîtier à l'aide d'un tuple

Avoir un code comme:

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

La question est puis-je utiliser plusieurs intervalles dans la deuxième valeur de tuple?

pour les interrupteurs non-tuple, cela peut être fait assez facilement comme

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

Quel séparateur devrais-je utiliser pour séparer mes intervalles à l'intérieur de Tuple ou cela ne fonctionnera tout simplement pas pour les commutateurs Tuple et je dois utiliser un commutateur à l'intérieur d'un commutateur? Merci!

62
iiFreeman

Vous devez lister plusieurs tuples au niveau supérieur:

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