加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Swift中通过字典迭代

发布时间:2020-12-14 06:16:24 所属栏目:百科 来源:网络整理
导读:我有点困惑的答案,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 = 0for (k
我有点困惑的答案,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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读