我有一个这样的词典:
var myDict = [Int : [Int]]()
其中的数组未初始化,因此每次我必须先检查它:
if (myDict[idx] == nil) {
myDict[idx] = []
}
如何在MyDict
声明中将其初始化为空数组?
答案 0 :(得分:1)
我认为你可能会误解一些非常关键的东西 - 让我们确定一下:
字典的工作方式不是一个数组,而是每个键的数组。
您请求数组的每个“idx”值都会返回不同的数组。
你不能指望它返回一个空数组 - 一个字典意味着为一个尚未设置的键返回一个nil值。为了做你正在尝试的事情,以下可能会做到这一点:
myDict[idx] = myDict[idx] ?? []
答案 1 :(得分:0)
你可以这样初始化
myDict.forEach {
(var dictElement) -> () in
dictElement.1 = [Int]()
}
答案 2 :(得分:0)
如果您尝试检索没有值的键,那么该字典会执行什么操作。 您可以继承Dictionary并重写下标func以获得您想要的内容this。或者只是编写一个扩展名,或者编写一个运算符定义来使用不同的符号。
“您还可以使用下标语法从字典中检索特定键的值。因为可以请求不存在值的键,所以字典的下标返回字典值类型的可选值。 “
摘录自:Apple Inc.“The Swift Programming Language(Swift 2.1)。”iBooks。 https://itunes.apple.com/cn/book/swift-programming-language/id881256329?l=en&mt=11