57 votes

Utilisation de l'affectation where in if let en Swift

La documentation de Swift, à la page 61 du manuel de Swift, fait allusion à la possibilité d'utiliser where pour joindre une reliure facultative à une condition régulière. Pourtant, lorsque je le fais, j'ai un avertissement me suggérant de substituer l'élément where avec une virgule comme dans le code suivant :

if let geocodingError = error as? NSError where geocodingError.code == 2

136voto

Grimxn Points 16807

Dans Swift 3, cette syntaxe a changé.

Qu'est-ce que

if let x = y, a = b where a == x {

C'est maintenant

if let x = y, let a = b, a == x {

La justification est que chaque sous-clause de la if ... { est maintenant un test booléen indépendant.

Voir le Xcode Notes de mise à jour et le Proposition de Swift Evolution pour plus d'informations sur ce changement.

5voto

Alex Points 1152

Exemple avec deux conditions

if let x = y, let a = b, a == x && !x.isEmpty {

3voto

luhuiya Points 23

Dans xcode 9

if let str = textField.text as String!, !str.isEmpty
{
   params[key] = str
   TextFieldHelper.setup(textField: textField)
}
else
{ 
   TextFieldHelper.error(textField: textField)
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X