我正在处理一个复杂的字典,并希望只需为其分配一个变量就可以轻松工作。
myDictionay["with"]["complex"]["sub"]["dictionary"] = "NewValue"
我只想要这个:
let smaller = myDictionay["with"]["complex"]["sub"]
smaller["dictionary"] = "NewValue"
我该怎么做?
最佳答案
Swift Dictionary
(和 Array
/Set
)遵循按引用语义传递,而不是按值传递语义(如果你查看您将看到的 header 是 struct
,而不是 class
)。这意味着当您将 Dictionary
实例从一个变量分配给另一个变量,并更改与新变量关联的值时,它实际上不会更改与原始值。因此,Swift Dictionary
无法提供您正在寻找的语法。话虽如此,您始终可以改用 NSMutableDictionary
,这样您希望的语法就会起作用。
关于swift - 如何在 Swift 中分配对字典的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34958061/