我正在练习swift,我正在尝试迭代一个字典来打印密钥,但它给了我一个
致命错误:字典文字包含重复的键
如何删除错误?
let people = ["age":14, "age":15, "age":75, "age":43, "age":103, "age":87, "age":12]
for (key, value) in people {
print(value)
}
答案 0 :(得分:8)
每个字典键必须是唯一的
let people = ["age1":14, "age2":15, "age3":75, "age4":43, "age5":103, "age6":87, "age7":12]
for (key, value) in people {
print(value)
}
答案 1 :(得分:2)
创建一个People
结构或类,并在数组而不是字典中使用它的实例:
struct Person {
var age : Int
}
let people = [Person(age: 14), Person(age: 15)] // and so on
for person in people {
print(person)
}
字典是唯一键到某个值的映射。因此,您之前所做的工作无效,因为您的密钥age
不是唯一的。但是,您可以使用其他字典:
let people = [14: Person(age: 14), 15: Person(age: 15)] // and so on
for (key, value) in people {
print("\(key) => \(value)")
}
答案 2 :(得分:1)
正如其他人已经说过的那样,你不能创建一个字典,其中相同的密钥会出现多次。
那说我真的很喜欢luk2302
提供的解决方案,因为如果确实提供了结构良好的方法。
我在这里只是添加另一种解决方案。
由于您(错误)字典中的真实信息是value
(不是密钥),使用Dictionary
的含义是什么?
你可以简单地使用数组
let ages = [14, 15, 75, 43, 103, 87, 12]
ages.forEach { print($0) }