Swift数组var问题

时间:2016-10-25 07:38:08

标签: arrays swift var

    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 array附加了“Four”,但在字典中它不是,如何在字典中附加元素?

2 个答案:

答案 0 :(得分:2)

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

你应该做什么:

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

答案 1 :(得分:0)

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

您可以在此官方Apple页面中找到更多详细信息:Value and Reference Types