swift - 你能追加到字典中的数组吗?

标签 swift

在 Swift 中,你可以声明一个值为数组类型的字典,例如:

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

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

dict[1] = []

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

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

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


如果我们显式地使数组可变,那么追加会起作用,但不会修改原始数组:

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

如何追加到作为字典值的数组?

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


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

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

最佳答案

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

dict[1]!.append(0)

关于swift - 你能追加到字典中的数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25394661/

相关文章:

ios - "ProjectName-Swift.h"找不到文件 - 共享扩展

ios - 跟踪新创建的 subview

swift : switch case multiples values from dictionary keys

swift - NSDate 和 UIDatepicker Swift

ios - 显示从 url 到 Collection View Swift 单元格的 3 张图像

ios - TableView 不显示 Cells Swift

ios - 使用 UIAlertController 操作以编程方式链接到嵌入式 UIViewController

swift - 使用未声明的类型 'DynamicLink'

ios - iOS 应用程序可以被动地听取某种声音吗?

ios - navigationController?.isNavigationBarHidden = true 会导致 Swift 中的 NSRangeException 。我该如何预防?