gpt4 book ai didi

arrays - 无法将值添加到字典

转载 作者:行者123 更新时间:2023-11-28 16:00:24 24 4
gpt4 key购买 nike

我有一个字典 -> var dictionary = [String : [String]]() 我想在字典的数组中附加字符串值。我是这样做的

 for (key, value) in dictionary {
dictionary.updateValue(value.append(nameText),forKey: "name")
}

这里,nameText 是一个字符串,我得到一个错误提示,

Cannot use mutating member on immutable value: 'value' is a 'let' constant.

我做错了什么?非常感谢您的帮助。

最佳答案

您的第一个问题是 value 是循环体内的一个 let 常量。您必须将其声明为 var 才能对其进行变异。

您的第二个问题是您正在尝试使用 value.append(nameText) 作为为键设置的值。但是,append() 会原地改变数组,并返回 Void

第三,不要使用updateValue(forKey:)。真的没有意义。请改用下标。

var dictionary = [
"a" : ["a"],
"b" : ["b", "b"],
"c" : ["c", "c", "c"],
]

let nameText = "foo"
for (key, var value) in dictionary {
value.append(nameText)
dictionary["name"] = value
}

现在,这会让您的代码编译,但我非常怀疑这是否真的是您想要做的。您将在每次迭代中覆盖 "name" 键的值,这意味着只有最后一次迭代的值会保留。此外,由于 Dictionary 没有定义的顺序,因此此代码具有不确定的行为。你到底想做什么?

关于arrays - 无法将值添加到字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41167176/

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