在Swift中通过字典迭代

前端之家收集整理的这篇文章主要介绍了在Swift中通过字典迭代前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有点困惑的答案,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,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

我理解,当字典正在被转移,最大的数字被设置为变量,最大。但是,我很困惑为什么Xcode说最大的是设置5次,或1次,或3次,取决于每个测试。

当看看代码,我看到它应该在“Prime”单独设置6次(2,3,5,7,11,13)。然后它应该跳过“斐波纳契”中的任何数字,因为这些都小于最大,目前设置为13从“Prime”。然后,它应该设置为16,最后25在“方”,总共产生8次。

我缺少一些完全明显的东西吗?

Swift中的字典(和其他语言)没有排序。当你遍历字典时,没有可见的顺序将匹配初始化顺序。在这个例子中,Swift在其他方法之前处理“Square”键。你可以通过在循环中添加一个print语句来看到这一点。 25是正方形的第五个元素,所以最大的将被设置5次在广场的5个元素,然后将保持在25。
let interestingNumbers = [
    "Prime": [2,numbers) in interestingNumbers {
    println("kind: \(kind)")
    for number in numbers {
        if number > largest {
            largest = number
        }
    }
}
largest

打印:

06001

猜你在找的Swift相关文章