如何在字典中初始化数组?

时间:2016-02-26 03:51:01

标签: swift dictionary

我有一个这样的词典:

var myDict = [Int : [Int]]()

其中的数组未初始化,因此每次我必须先检查它:

if (myDict[idx] == nil) {
    myDict[idx] = []
}

如何在MyDict声明中将其初始化为空数组?

3 个答案:

答案 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