Modificando uma matriz de dicionários no Swift
Eu sou novo no Swift e tenho tido alguns problemas para descobrir alguns aspectos de matrizes e dicionários.
Eu tenho uma matriz de dicionários, para os quais usei Aliases de tipo, por exemplo
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]
]
Desejo, então, percorrer os dicionários da matriz e alterar o valor da chave "distance". Eu fiz assim:
for dict:myDicts in myArray {
dict["distance"] = 5
}
Ou mesmo especificamente, certificando-se de que 5 é um duplo com muitas abordagens diferentes, incluindo por exemplo
for dict:myDicts in myArray {
let numberFive : Double = 5
dict["distance"] = numberFive
}
Todas as minhas tentativas causam um erro:
@lvalue $T5' is not identical to '(String, Double)
Parece estar agindo como se os dicionários fossem imutáveis "let" em vez de "var". Então, eu tentei aleatoriamente isso:
for (var dict:myDicts) in myArray {
dict["distance"] = 5
}
Isso remove o erro e a chave é realmente atribuída 5 no loop for, mas isso não parece realmente modificar a própria matriz a longo prazo. O que estou fazendo errado?