Sono un po 'confuso sulla risposta che Xcode mi sta dando a questo esperimento nella Guida al linguaggio di programmazione 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
Capisco che il dizionario è transversed, il maggior numero viene impostata alla variabile, largest
. Tuttavia, sono confuso sul perché Xcode lo stia dicendolargest
viene impostato 5 volte, oppure 1 volta o 3 volte, a seconda di ciascun test.
Quando guardo il codice, vedo che dovrebbe essere impostato 6 volte in "Prime" da solo (2, 3, 5, 7, 11, 13). Quindi dovrebbe saltare qualsiasi numero in "Fibonacci" poiché quelli sono tutti meno del più grande, che è attualmente impostato su 13 da "Prime". Quindi, dovrebbe essere impostato su 16 e infine su 25 in "Square", per un totale di 8 volte.
Mi sto perdendo qualcosa di completamente ovvio?