我按以下方式尝试了语法:
var Days: [String: (Dictonary [Int: Int])] = ["ADay: : [:], "BDay" : [:], "CDay" : [:], "DDay:" : [:]]
我希望稍后再设置它们:
Days.ADay = [1:1, 2:2, 3:3, 4:4, 5:5, 6:6, 7:7]
Days.BDay: [Int: Int] = [1:8, 2:1, 3:2, 4:3, 5:4, 6:5, 7:13]
等
感谢。
答案 0 :(得分:6)
在Swift中创建嵌套字典很容易。在最简单的形式中,最直观的方式是:
let dict = ["key": ["nestedKey": ":)"]]
在您的情况下,对于初学者,您的报价不匹配。
接下来,您将过度思考字典是什么以及如何实例化它。您正在尝试使用嵌套键(实际上是不可变的)构建预定义的字典。如果您想按照自己的方式进行操作,请不要担心预定义键。当您准备好分配时,请执行:
var days: [String: Dictionary] = []
days["ADay"] = [1:1, 2:2, 3:3, 4:4, 5:5, 6:6, 7:7]
如果您需要更复杂的内容或更结构化的内容,请尝试使用Struct。这是" Swift"服务方式,允许您构建一组复杂的(静态类型!)数据。例如:
struct Days {
var ADay = [Int: Int]()
var BDay = [Int: Int]()
var CDay = [Int: Int]()
var DDay = [Int: Int]()
}
var days = Days()
days.ADay = [1:1, 2:2, 3:3, 4:4, 5:5, 6:6, 7:7]
答案 1 :(得分:1)
以下是具有合法语法的示例:
var Days: [String: [Int: Int]] = ["ADay": [:], "BDay" : [:], "CDay" : [:], "DDay:" : [:]]
Days["ADay"] = [1:1, 2:2, 3:3, 4:4, 5:5, 6:6, 7:7]
Days["BDay"] = [1:8, 2:1, 3:2, 4:3, 5:4, 6:5, 7:13]
声明类型的另一种方法是var Days: Dictionary<String, Dictionary<Int, Int>>
。
答案 2 :(得分:1)
如果您正在寻找简写类型声明,它将如下所示。
var twodDict: [String : [String : Int]]
换句话说:
var twodDict: [OuterKey : [InnerKey : StoredObjectorValue]]