Sono un po 'confuso sulla risposta che Xcode mi sta dando a questo esperimento nella Guida Swift linguaggio di programmazione:scorrendo un dizionario a 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 come il dizionario viene transversed, il il numero più grande viene impostato sulla variabile, largest
. Tuttavia, sono confuso dal motivo per cui Xcode sta dicendo che largest
viene impostato 5 volte, o 1 volta o 3 volte, a seconda di ciascun test.
Guardando attraverso il codice, vedo che dovrebbe essere impostato 6 volte in "Prime" da solo (2, 3, 5, 7, 11, 13). Quindi dovrebbe saltare tutti i numeri in "Fibonacci" poiché quelli sono tutti inferiori al più grande, che è attualmente impostato a 13 da "Prime". Quindi, dovrebbe essere impostato su 16 e infine 25 su "Square", ottenendo un totale di 8 volte.
Mi manca qualcosa di completamente ovvio?
Grazie tu così tanto! Sono stato perplesso per un po '. Continuavo ad aggiungere e rimuovere i numeri per ogni chiave nella speranza di sezionarlo, ma non andavo da nessuna parte. La tua spiegazione è chiara e molto apprezzata! –
Woot! Sono contento di poter aiutare :) – Dash