写嵌套字典(Swift 4)

时间:2018-11-11 22:55:29

标签: swift dictionary collections

我在Swift中这样声明了一个字典:var dict = [String: [String: [String]]]()

我现在想做的是写给嵌套字典。我在下面使用了这两个代码,但是由于初始键不存在,因此它们都不起作用:

dict["Test"]?["One"] = ["Failed"]
dict["Test"]!["One"] = ["Failed"]

我要做的是为["One"]创建一个密钥,就像您可以使用dict[key]为普通字典创建密钥一样。

2 个答案:

答案 0 :(得分:2)

您需要实例化每个内部字典。

var dict = [String : [String : [String]]]()

dict["Test"] = [String : [String]]()

dict["Test"]?["One"] = ["Worked"]

print(dict)

确保避免强行展开。

答案 1 :(得分:1)

dict为空。 "Test"键没有任何值。

一种选择是提供默认值:

dict["Test", default: [:]]["One"] = ["A", "B"]

您可以更进一步:

dict["Test2", default: [:]]["Two", default: []].append("Hello")

最后一行适用于在使用之前或不存在的键"Test2""Two"的任何组合。