Récemment, j'ai vu le discours d'ouverture de la WWDC 2015 d'Apple. J'ai également regardé de la documentation mais je ne trouve pas de section "correspondance de motifs dans if", comment elle a été écrite sur l'une des diapositives qu'ils ont montrées. (Vidéo 68 min 00sec de Événements Apple )
Savez-vous à quoi cela fait référence? Ou la syntaxe?
Tout ce que cela signifie vraiment, c'est que si les instructions prennent désormais en charge la mise en correspondance de modèles comme les instructions de commutateur le sont déjà. Par exemple, ce qui suit est maintenant un moyen valide d'utiliser les instructions if/else if/else pour "basculer" sur les cas d'une é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
est dans une plage donnée.
let someInteger = 42
if case 0...100 = someInteger {
// ...
}
Voici quelques autres exemples utilisant le modèle facultatif de The 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)
}