轉載自:http://blog.csdn.net/bwf_erg/article/details/70858865 數組是由一組類型相同的元素構成的有序數據集合。數組中的集合元素是有 序的,而且可以重覆出現。 1 數組創建 在Swift語言中,數組的類型格式為: Array<ElementType> ...
轉載自:http://blog.csdn.net/bwf_erg/article/details/70858865
數組是由一組類型相同的元素構成的有序數據集合。數組中的集合元素是有
序的,而且可以重覆出現。
1 數組創建
在Swift語言中,數組的類型格式為:
Array<ElementType>或[ElementType]
其中Array<ElementType>中的ElementType表示數組的類型,< ElementType >是泛型寫法。[ElementType]是一種簡寫方式。兩者表示的功能是一樣的,我們更偏向於使用簡寫形式,本書里所有數組類型都是使用簡寫形式。
下麵我們來創建一個String類型的數組
1 | var strArray1: Array<String> 2 | let strArray2: [String] |
在聲明一個數組的時候可以使用let和var進行修飾,其中let表示不可變數組,var表示可變數組。
第1行代碼聲明瞭一個類型為Array<String>的可變數組strArray1。<String>是泛型,說明在這個數組中只能存放字元串類型的數據。
第2行代碼聲明瞭一個類型為[String]的不可變數組strArray2。[String]也是聲明一個只能存放字元串類型的數組。
接下來我們來學習如何創建一個空數組。
1 | var emptyStrs= [String]() 2 | let emptyInts = [Int]() |
創建一個數組需要對數組進行聲明和初始化。上述第1行代碼我們創建了一個String類型可變空數組emptyStrs。其中我們var聲明表示該數組是可變數組,中括弧[]裡面的值String表示數組的類型。[String]()是對數組進行初始化,只不過沒有任何元素。
第2行代碼與第1行代碼同樣是創建一個空數組emptyInts,區別在於我們用let聲明瞭一個不可變數組,該數組的類型是Int類型。let聲明的數組是不可變數組,必須在聲明的同時進行初始化,一旦初始化,就不可以被修改。
最後我們來學習如何創建非空數組。示例代碼如下:
1 | var strArray1: Array<String> = ["hello","Swift"] 2 | var strArray2: [String] = ["hello","swift"] 3 | let strArray3 = ["hello","swift",15] |
上述代碼都是對數組進行聲明和初始化,數組的類型是通過冒號(:)指明數組的類型。數組中的元素由一對中括弧([])括起來,數組中的元素之間用逗號分隔。
第1行代碼是使用標準模板方式聲明是一個String類型的可變數組strArray1,並初始化值為["hello","swift"]。其中尖括弧<String>表示數組的類型,表示strArray1只能存放String類型的元素。
第2行代碼是採用簡寫形式顯式聲明可變數組strArray2。[String]表示數組的類型,表示strArray2只能存放String類型的元素。
第3行代碼聲明瞭一個不可變數組,這裡沒有指明數組的類型,採用的是隱式推斷。根據初始化數組的值推斷出數組的類型。在strArray3數組中我們存放了String類型的"hello","swift"以及Int類型的15。在沒有明確指定數組類型,我們可以在數組中存放不同類型的元素。
不可變數組在訪問效率上比可變數組要高,可變數組通過犧牲訪問效率換取可變。當我們可以確定數組是不需要修改的,我們應該將它聲明為let。如果數組內容需要改變。我們需要將它聲明為var。
此外,如果數組中存儲多個相同的元素,我們可以通過以下方法快速創建該數組:
1 | var threeDoubles = Array(repeating: 0.0, count: 3) |
此時threeDoubles數組的內容為[0.0,0.0,0.0]