我是 Swift 新手,在理解数组和字典的某些方面遇到了一些麻烦。
我有一个字典数组,我使用了类型别名 - 例如
typealias myDicts = Dictionary<String, Double>
var myArray : [myDicts] = [
["id":0,
"lat”:55.555555,
"lng”:-55.555555,
"distance":0],
["id":1,
"lat": 44.444444,
"lng”:-44.444444,
"distance":0]
]
然后我想迭代数组中的字典并更改“距离”键值。我是这样做的:
for dict:myDicts in myArray {
dict["distance"] = 5
}
或者甚至用许多不同的方法专门确保 5 是双精度数,包括例如
for dict:myDicts in myArray {
let numberFive : Double = 5
dict["distance"] = numberFive
}
我所有的尝试都会导致错误:
@lvalue $T5' is not identical to '(String, Double)
它的表现就好像里面的字典是不可变的“let”而不是“var”。所以我随机尝试了这个:
for (var dict:myDicts) in myArray {
dict["distance"] = 5
}
这消除了错误,并且键确实在 for 循环中被分配了 5,但从长远来看,这似乎并没有真正修改数组本身。我究竟做错了什么?