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数组有附加"四",但在字典中没有,如何在字典中附加一个元素?

在 Swift 中,数组是作为结构体实现的,并且在代码中传递时总是复制它们,并且不使用引用计数。话虽如此,array成为示例中dictionary[1]的副本,因此更新其内容不会影响原始字典。

你应该做什么:

dictionary["1"]?.append("Four")

与 Objective-C 不同,Swift 中的集合不是引用类型。这意味着数组、字典、字符串和几乎所有东西的行为都像 C/Objective-C 中的原语(对象除外,它们是类的实例,而不是结构或枚举(。

您可以在此 Apple 官方页面中找到更多详细信息:值和引用类型

最新更新