Quelle est la bonne façon d'utiliser la boucle for-in avec une boucle facultative?
À l'heure actuelle, j'effectue toujours une liaison facultative avant de la boucler. Y a-t-il d'autres idiomes?
let optionalInt:[Int]? = [1, 2, 3]
if let optionalInt = optionalInt {
for i in optionalInt {
print(i)
}
}
Si un ensemble d'opérations doit être appliqué à tous les éléments du tableau, il est possible de remplacer for-loop par forEach{}
fermeture et utilisation chaînage optionnel :
var arr: [Int]? = [1, 2, 3]
arr?.forEach{print($0)}
Je ne pense pas qu'il existe une bonne façon. Il existe de nombreuses façons différentes, cela se résume vraiment à ce que vous préférez, Swift est plein de fonctionnalités qui peuvent rendre votre programme vraiment agréable selon votre choix.
Voici quelques pistes auxquelles je pourrais penser:
let optionalInt:[Int]? = [1, 2, 3]
for i in optionalInt! { print(i) }
for i in optionalInt ?? [] { print(i) }
for i in optionalInt as [Int]! { print(i) }
Vous pouvez écrire celui-ci:
let optionalInt:[Int]? = [1, 2, 3]
for i in optionalInt ?? [Int]() {
print(i)
}
Mais je vous recommande d'éviter d'utiliser une valeur facultative, par exemple, vous pouvez écrire comme ceci:
var values = [Int]()
// now you may set or may not set
for i in values {
print(i)
}
Ou si vous souhaitez utiliser une valeur facultative et que ce code appelle dans une fonction, vous pouvez utiliser guard
:
guard let values = optionalInt else { return }
for i in values {
print(i)
}