swift - mt202cov - mt103



Swift 2-Correspondance de modèle dans “if” (1)

J'ai récemment vu le discours de la WWDC 2015 d'Apple. J'ai aussi regardé de la documentation mais je ne trouve pas de section "correspondance de motif dans si", comment cela a été écrit sur l'une des diapositives qu'ils ont montrées. (Vidéo 68min 00sec de Apple Events )

Savez-vous ce que cela fait référence? Ou la syntaxe?


Tout ce que cela signifie, c’est que si les instructions prennent désormais en charge la correspondance des modèles, comme le font déjà les instructions switch. Par exemple, ce qui suit est maintenant un moyen valide d’utiliser les instructions if / else if / else pour "basculer" entre les cas d’énumération.

enum TestEnum {
    case One
    case Two
    case Three
}

let state = TestEnum.Three

if case .One = state {
    print("1")
} else if case .Two = state {
    print("2")
} else {
    print("3")
}

Et ce qui suit est maintenant un moyen acceptable de vérifier si someInteger situe dans une plage donnée.

let someInteger = 42
if case 0...100 = someInteger {
    // ...
}

Voici quelques exemples supplémentaires utilisant le modèle optionnel de Swift Programming Language.

let someOptional: Int? = 42
// Match using an enumeration case pattern
if case .Some(let x) = someOptional {
    print(x)
}

// Match using an optional pattern
if case let x? = someOptional {
    print(x)
}




swift2