【发布时间】:2014-09-22 16:40:58
【问题描述】:
我是 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,但从长远来看,这似乎并没有真正修改数组本身。我做错了什么?
【问题讨论】:
标签: arrays dictionary swift