繁体   English   中英

如何在 Swift 5 中循环字典?

[英]How to loop over a dictionary in Swift 5?

在 Swift 4 中,我可以使用下面的代码,但在 Swift 5 中出现以下错误: Type 'Dictionary<String, String>.Values.Iterator' does not conform to protocol 'Sequence'

guard let userIds = users.values.makeIterator() else { return }

for userId in userIds {
    // User setup
}

现在 Swift 5 的正确方法是什么?

let dictionary: [String: Int] = ["a": 1, "b": 2]

for (key, value) in dictionary {
    print(key, value)
}

您可以这样尝试迭代器:

 let users = ["a":11, "b":12]
 var userIds = users.values.makeIterator()
 while let next = userIds.next() {
    print(next) // 11 \n 12
 }

还:

let x = [
"kitty": 7,
"bob": 2,
"orange": 44
]
x.forEach { t in
    print("key = \(t.key); value = \(t.value)")
}

这显然从 Swift 3 开始就可用了。 链接到关于Dictionary type 的标准库文档

你可以简单地做

for (_, userId) in users {
    // User setup
}

Swift 4,Swift5及更高版本

let dict: [String: Any] = ["a": 1, "b": "hello", "c": 3]

        for (key, value) in dict {
            print(key, value)
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM