Я трохи розгублений у відповіді, що Xcode дає мені цей експеримент у посібнику з мови програмування 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
Я розумію , що в якості словника в даний час пробігтися, найбільше число в даний час набір змінної, largest
. Однак мене бентежить питання про те, чому Xcode каже, largest
що встановлюється 5 разів, або 1 раз, або 3 рази, залежно від кожного тесту.
Переглядаючи код, я бачу, що він повинен бути встановлений 6 разів лише в "Prime" (2, 3, 5, 7, 11, 13). Тоді слід пропустити будь-які цифри у "Фібоначчі", оскільки всі вони менше, ніж найбільший, який наразі на "Prime" встановлений на 13. Тоді його слід встановити на 16, і, нарешті, на 25 у "Квадрат", виходячи загалом у 8 разів.
Я пропускаю щось абсолютно очевидне?