【Swift初見】Swift數組,初見swift數組
在Objective-C中數組是常用的資料類型,在Swift中同樣如此,在OC中有NSArray與NSMutableArray之分,但是在Swift中只有通過let和var來區分數組是否可變,Swift中的數組是型別安全的,所以在某個資料被存入到某個數組之前類型必須明確,假如我們建立了一個String類型的數組,那麼該數組中就不能添加非String的資料類型,這是Swift與OC的一個很重要的區別。
數組的構造
我們以建立一個數組並儲存Int類型的數組為例:
var array = [2, 3, 4, 5]var array1: Array = [2, 3, 4, 5]var array2: Array<Int> = [2, 3, 4, 5]var array3: [Int] = [2, 3, 4, 5]
數組的數量:數組有一個唯讀屬性 count來擷取數組中的資料項目數量。
array.count
檢查數組是否為空白可以用isEmpty來檢查count是否為0
if array.isEmpty { println("array is Empty")}else{ println("array is not Empty")}
當要在數組後面添加新的資料項目時可以使用append方法來添加:
array .append(6)
此時數組中就有5個值了,
當數組的資料類型為字串時,也可以使用加法賦值運算子(+=)直接在數組的後面添加新的資料項目;
加法運算子也可以直接添加擁有相同類型的數組:
array += [7,8]
擷取數組中資料項目的時候,可以用索引來擷取值:
var intV = array[0]
註:不管是OC還是Swift,數組的索引都是從0開始。
修改數組中的某一項時,也可以通過索引來改變:
array[0] = 9
此時數組就為:[9, 3, 4, 5, 6, 7, 8]
swift中也可以通過下標一次性改變多個資料值:
array[1...3] = [10,11,12]
此時數組值就是:[9, 10, 11, 12, 6, 7, 8]
在數組尾部添加新項時,不能使用下標來添加新項,此時數組越界,會引發一個運行期錯誤。
在某個具體索引值之前添加資料項目,調用數組的insert(atIndex)來添加:
array.insert(13, atIndex: 0)
此時的數組值為:[13, 9, 10, 11, 12, 6, 7, 8]
同樣的,移除數組的某一項時用removeAtIndex 方法;
移除最後一項的時候用removeLast
數組遍曆
普遍的我們使用for-in迴圈來遍曆數組中的所有資料項目
for i in array { println(i)}
swift提供一個enumerate函數來遍曆數組,會同時返回資料項目和索引值:
for (index, value) in enumerate(array){ println("index : \(index) value: \(value)")}
此時列印的值為:
index : 0 value: 13
index : 1 value: 9
index : 2 value: 10
index : 3 value: 11
index : 4 value: 12
index : 5 value: 6
index : 6 value: 7
index : 7 value: 8
如果我們需要建立一個數組,該數組有特定的大小並且所有的資料都是被預設的,此時swift提供了一個數組建構函式:
var newArray = [String](count: 4, repeatedValue: "test")
當然,swift具有類型推斷功能,我們也可以如下定義:
var newArray2 = Array(count: 3, repeatedValue: "today")
我們知道,兩種資料項目類型相同的數組我們可以通過(+)來組合到一起形成一個新的數組:
var newArray3 = newArray + newArray2
歡迎大家共同學習指導。