gpt4 book ai didi

swift - 向下转换后附加到字典中的数组时出现不可变值错误

转载 作者:行者123 更新时间:2023-11-28 08:13:14 26 4
gpt4 key购买 nike

var someDict = [String:Any]()
someDict["foo"] = ["hello"]
(someDict["foo"] as? [String])?.append("goodbye") // error here

我正在尝试向包含数组的现有字典添加一个值。该字典还包含其他非数组值,因此它的值类型必须为 Any。问题是,当我这样做时,出现错误 Cannot use mutating member on immutable value of type '[String]'。一些谷歌搜索出现了一些引用资料,例如 this建议字典中的数组始终是不可变的,但如果我这样做,编译器不会提示:

var someDict = [String:[String]]()
someDict["foo"] = ["hello"]
someDict["foo"]?.append("goodbye")

所以我怀疑信息已经过时,而且它是特定于向下转换的信息。有没有什么办法可以在不复制和重新分配整个字典值的情况下解决这个问题?

最佳答案

是的,它与沮丧有关。试试这个:

var someDict = [String:Any]()
someDict["foo"] = ["hello"]
if var arr = someDict["foo"] as? [String] {
arr.append("goodbye")
someDict["foo"] = arr
}

关于swift - 向下转换后附加到字典中的数组时出现不可变值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43190042/

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