在
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
最佳答案 尝试展开数组而不是转换:
dict[1]!.append(0)