數(shù)組和字典都是在單個(gè)集合中存儲可變值。如果我們創(chuàng)建一個(gè)數(shù)組或者字典并且把它分配成一個(gè)變量,這個(gè)集合將會是可變的。這意味著我們可以在創(chuàng)建之后添加更多或移除已存在的數(shù)據(jù)項(xiàng)來改變這個(gè)集合的大小。與此相反,如果我們把數(shù)組或字典分配成常量,那么它就是不可變的,它的大小不能被改變。
對字典來說,不可變性也意味著我們不能替換其中任何現(xiàn)有鍵所對應(yīng)的值。不可變字典的內(nèi)容在被首次設(shè)定之后不能更改。 不可變性對數(shù)組來說有一點(diǎn)不同,當(dāng)然我們不能試著改變?nèi)魏尾豢勺償?shù)組的大小,但是我們可以重新設(shè)定相對現(xiàn)存索引所對應(yīng)的值。這使得 Swift 數(shù)組在大小被固定的時(shí)候依然可以做的很棒。
Swift 數(shù)組的可變性行為同時(shí)影響了數(shù)組實(shí)例如何被分配和修改,想獲取更多信息,請參見集合在賦值和復(fù)制中的行為。
注意:
在我們不需要改變數(shù)組大小的時(shí)候創(chuàng)建不可變數(shù)組是很好的習(xí)慣。如此 Swift 編譯器可以優(yōu)化我們創(chuàng)建的集合。