你可以附加到dict中的数组吗?

时间:2014-08-19 23:39:11

标签: swift

在Swift中,您可以声明一个dict,其值是数组类型,例如:

var dict: [Int: [Int]] = [:]

但是,如果为给定键分配数组:

dict[1] = []

然后看来Swift将数组视为不可变的。例如,如果我们尝试:

(dict[1] as [Int]).append(0) // explicit cast to avoid DictionaryIndex

然后我们得到错误'类型[Int]的不可变值只有名为'append''的变异成员。


如果我们显式地使数组可变,那么append有效,但不会修改原始数组:

var arr = dict[1]!
arr.append(0) // OK, but dict[1] is unmodified

如何附加到dict值的数组?

更一般地说,如何将字典的值视为可变?


一种解决方法是事后重新分配值,但这似乎不是好的做法:

var arr = dict[1]!
arr.append(0)
dict[1] = arr

1 个答案:

答案 0 :(得分:2)

尝试展开数组而不是强制转换:

dict[1]!.append(0)