Модификация массива словарей в Swift
Я новичок в 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
}
Это устраняет ошибку, и ключу действительно присваивается значение 5 в цикле for, но это, по-видимому, фактически не изменяет сам массив в долгосрочной перспективе. Что я делаю неправильно?