Swift 数组变量问题
Swift Array var issue
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数组有追加"Four",但在字典中没有,如何在字典中追加一个元素?
在Swift中,数组被实现为structs,当它们在您的代码中传递时总是被复制,并且不使用引用计数。也就是说,array
在您的示例中成为 dictionary[1]
的副本,因此更新其内容不会影响原始词典。
你应该怎么做:
dictionary["1"]?.append("Four")
与Objective-C不同,Swift中的集合不是引用类型。这意味着数组、字典、字符串和几乎所有东西的行为都像 C/Objective-C 中的原语(对象除外,它们是 类 的实例,而不是结构或枚举)
您可以在此官方 Apple 页面中找到更多详细信息:Value and Reference Types
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数组有追加"Four",但在字典中没有,如何在字典中追加一个元素?
在Swift中,数组被实现为structs,当它们在您的代码中传递时总是被复制,并且不使用引用计数。也就是说,array
在您的示例中成为 dictionary[1]
的副本,因此更新其内容不会影响原始词典。
你应该怎么做:
dictionary["1"]?.append("Four")
与Objective-C不同,Swift中的集合不是引用类型。这意味着数组、字典、字符串和几乎所有东西的行为都像 C/Objective-C 中的原语(对象除外,它们是 类 的实例,而不是结构或枚举)
您可以在此官方 Apple 页面中找到更多详细信息:Value and Reference Types