Ich bin ein wenig verwirrt über die Antwort, die Xcode mir auf dieses Experiment im Swift Programming Language Guide gibt:
// 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
Ich verstehe, dass beim Durchlaufen des Wörterbuchs die größte Zahl auf die Variable gesetzt wird largest. Ich bin jedoch verwirrt darüber, warum Xcode sagt, dass dies largestje nach Test fünfmal oder einmal oder dreimal eingestellt wird.
Wenn ich den Code durchschaue, sehe ich, dass er allein in "Prime" 6 Mal eingestellt werden sollte (2, 3, 5, 7, 11, 13). Dann sollte es alle Zahlen in "Fibonacci" überspringen, da diese alle kleiner als die größten sind, die derzeit von "Prime" auf 13 gesetzt ist. Dann sollte es auf 16 und schließlich 25 in "Quadrat" gesetzt werden, was insgesamt 8 Mal ergibt.
Vermisse ich etwas ganz Offensichtliches?