Y a-t-il également une possibilité d'utiliser le mot-clé "où" à un autre endroit qu'un commutateur? Puis-je l'utiliser dans une boucle for in par exemple?
J'ai un tableau avec des bools, tous avec une valeur, puis-je faire quelque chose comme ceci:
var boolArray: [Bool] = []
//(...) set values and do stuff
for value where value == true in boolArray {
doSomething()
}
Ce serait beaucoup plus agréable que d'utiliser un if, donc je me demande s'il y a une possibilité d'utiliser where en combinaison avec une boucle for. Ty pour ton temps.
Dans Swift 2, une nouvelle syntaxe where
a été ajoutée:
for value in boolArray where value == true {
...
}
Dans la version antérieure à 2.0, une solution serait d'appeler .filter
sur le tableau avant de l'itérer:
for value in boolArray.filter({ $0 == true }) {
doSomething()
}
Un for-loop
Normal itérera tous les éléments présents dans la liste. Mais parfois, nous voulons itérer uniquement lorsque les données remplissent une condition, nous pouvons utiliser la clause where
avec for -loop
. C'est juste un remplacement de la condition if
à l'intérieur de la boucle.
Par exemple:
let numbers = [1,2,3,4,5,6,7]
for data in numbers {
if (data % 2 == 0) {
print(data)
}
}
peut être réécrit de la manière la plus simple:
for data in numbers where data % 2 == 0 {
print(data)
}