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

Ответы на вопрос(4)

Ваш ответ на вопрос