var dictionary = ["1": ["One","Two","Three"],
"2": ["A","B","C"]
]
var array = dictionary ["1"]
array!.append("Four")
print("array Count: (array!.count) array In DictionaryCount: (dictionary ["1"]!.count)")
//array Count: 4 array In Dictionary Count: 3
var数组有附加"四",但在字典中没有,如何在字典中附加一个元素?
在 Swift 中,数组是作为结构体实现的,并且在代码中传递时总是复制它们,并且不使用引用计数。话虽如此,array
成为示例中dictionary[1]
的副本,因此更新其内容不会影响原始字典。
你应该做什么:
dictionary["1"]?.append("Four")
与 Objective-C 不同,Swift 中的集合不是引用类型。这意味着数组、字典、字符串和几乎所有东西的行为都像 C/Objective-C 中的原语(对象除外,它们是类的实例,而不是结构或枚举(。
您可以在此 Apple 官方页面中找到更多详细信息:值和引用类型