Je suis un peu confus sur la réponse que Xcode me donne à cette expérience dans le Guide du langage de programmation Swift:
// Use a for-in to iterate through a dictionary (experiment)
let interestingNumbers = [
"Prime": [2, 3, 5, 7, 11, 13],
"Fibonacci": [1, 1, 2, 3, 5, 8],
"Square": [1, 4, 9, 16, 25]
]
var largest = 0
for (kind, numbers) in interestingNumbers {
for number in numbers {
if number > largest {
largest = number
}
}
}
largest
Je comprends que le dictionnaire est transversed, le plus grand nombre est d' être mis à la variable, largest
. Cependant, je ne comprends pas pourquoi Xcode dit que cela largest
est réglé 5 fois, ou 1 fois, ou 3 fois, selon chaque test.
Lorsque je regarde le code, je vois qu'il doit être réglé 6 fois dans "Prime" seul (2, 3, 5, 7, 11, 13). Ensuite, il devrait ignorer tous les nombres dans "Fibonacci" car ceux-ci sont tous inférieurs au plus grand, qui est actuellement réglé à 13 depuis "Prime". Ensuite, il doit être réglé sur 16, et enfin 25 sur "Square", ce qui donne un total de 8 fois.
Suis-je en train de manquer quelque chose de complètement évident?