gpt4 book ai didi

swift - 快速更改嵌套字典中的值

转载 作者:搜寻专家 更新时间:2023-10-30 22:05:13 26 4
gpt4 key购买 nike

我想知道为什么在设置嵌套字典的值时,包含的字典没有反射(reflect)这些变化?在第 3 行,返回的是字典的副本吗?

var dic = Dictionary<String, AnyObject>()  // line1
dic["key"] = ["a":"a"] // line2
var dic2 = dic["key"] as Dictionary<String, String> // line3
dic2["a"] = "b" // line4
dic // key : ["a":"a"], would expect ["a":"b"]

最佳答案

这是因为字典是值类型而不是 Swift 中的引用类型。

当你调用这条线时...

var dic2 = dic["key"] as Dictionary<String, String>

...您正在创建一个全新的字典,而不是对 dic 中值的引用。 dic2 中的更改不会反射(reflect)在 dic 中,因为 dic2 现在是第二个完全独立的字典。如果您希望 dic 反射(reflect)您所做的更改,您需要将值重新分配给 dic 中的适当键,如下所示:

dic["key"] = dic2

希望对您有所帮助...

关于swift - 快速更改嵌套字典中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28633611/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com