对于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).然后,它应该跳过"斐波那契"中的任何数字,因为这些数字都小于最大的数字,而最大的数字当前从"素数"设置为13.然后,它应该设置为16,最后在"Square"中设置为25,总共产生8次.
我是不是错过了一些显而易见的东西?