Untuk operator parameter fungsi kita menggunakan:
let (itu operator default, jadi kita bisa menghilangkan let ) untuk membuat parameter konstan (itu berarti kita tidak bisa memodifikasi bahkan salinan lokal);
var untuk membuatnya menjadi variabel (kita dapat memodifikasinya secara lokal, tetapi tidak akan mempengaruhi variabel eksternal yang telah diteruskan ke fungsi); dan
inout untuk menjadikannya sebuah parameter inout. In-out berarti meneruskan variabel dengan referensi, bukan dengan nilai. Dan itu membutuhkan tidak hanya untuk menerima nilai dengan referensi, dengan juga untuk meneruskannya dengan referensi, jadi teruskan dengan & - foo(&myVar)
bukan hanyafoo(myVar)
Jadi lakukan seperti ini:
var arr = [1, 2, 3]
func addItem(inout localArr: [Int]) {
localArr.append(4)
}
addItem(&arr)
println(arr) // it will print [1, 2, 3, 4]
Tepatnya, ini bukan hanya referensi, tetapi alias nyata untuk variabel eksternal, jadi Anda dapat melakukan trik seperti itu dengan tipe variabel apa pun, misalnya dengan integer (Anda dapat menetapkan nilai baru untuk itu), meskipun itu mungkin bukan praktik yang baik dan mungkin akan membingungkan untuk mengubah tipe data primitif seperti ini.
account
variabel global dan mendefinisikanchats
milikChatsViewController
sebagai:var chats: [Chat] { return account.chats }
.