swift - 如何在 Swift 中分配对字典的引用

标签 swift dictionary

我正在处理一个复杂的字典,并希望只需为其分配一个变量就可以轻松工作。

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/

相关文章:

ios - UIPageViewController 定义与以前的值冲突

ios - 如何在 NSUserDefaults 中保存任何类

xcode - 为什么在 Swift 中用关键字 "let"声明常量?

ios - 无法在 iOS 中通过 cocoa pod 安装 Realm

c++ - 如何从映射中获取值并在 C++ 的 switch 语句中使用它?

swift - 如何表示一个忽略时间的 Date 对象?

python - 检查 python 字典中的键模式

c# - 当值类型可以相互转换时,为什么我不能将一种值类型的字典转换为另一种值类型的字典?

ios - 在 iOS 上映射 UIView

dictionary - Elixir 按条件过滤映射条目