【发布时间】:2014-07-29 11:35:06
【问题描述】:
我对 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 次,具体取决于每个测试。
查看代码时,我发现仅在“Prime”中就应该设置 6 次(2、3、5、7、11、13)。然后它应该跳过“斐波那契”中的任何数字,因为这些数字都小于最大的,目前从“Prime”设置为 13。然后,它应该设置为 16,最后在“Square”中设置为 25,总共产生 8 次。
我是否遗漏了一些非常明显的东西?
【问题讨论】:
标签: dictionary swift