Para o operador de parâmetro de função, usamos:
let (é o operador padrão, portanto, podemos omitir let ) para tornar um parâmetro constante (significa que não podemos modificar nem mesmo a cópia local);
var para torná-lo variável (podemos modificá-lo localmente, mas isso não afetará a variável externa que foi passada para a função); e
inout para torná-lo um parâmetro in-out. Na entrada significa na verdade passar variável por referência, não por valor. E requer não apenas aceitar valor por referência, mas também passá-lo por referência; assim, passe-o com & - em foo(&myVar)
vez de apenasfoo(myVar)
Então faça assim:
var arr = [1, 2, 3]
func addItem(inout localArr: [Int]) {
localArr.append(4)
}
addItem(&arr)
println(arr) // it will print [1, 2, 3, 4]
Para ser exato, não é apenas uma referência, mas um alias real para a variável externa; portanto, você pode fazer esse truque com qualquer tipo de variável, por exemplo, com número inteiro (você pode atribuir um novo valor a ela), embora possa não ser um boa prática e pode ser confuso modificar os tipos de dados primitivos como este.
account
uma variável global e definir achats
propriedade deChatsViewController
como:var chats: [Chat] { return account.chats }
.