Swift: 5.1 集合類型-數組
Swift提供了數組、集合、字典這三種集合類型。數組是下標從0開始的有序的序列值,集合是一組無序的、無重復的值,而字典是一組無序的、以鍵值對(key-value)形式存儲的值。不管是數組、集合還是字典,其中存儲的數據的類型是確定的。這就保證了在插值和取值的過程中,所操作的值類型不會出現混淆的情況。常量和變量對于集合類型同樣是適用的,也就是說如果集合類型聲明為常量,就不可以對集合進行插值、刪值或者更改值的操作。
數組
- 數組存儲的數據的類型是固定的,數組類型全寫是Array<Element>,一般都簡寫成“[Element]”。如果通過上下文可以推斷出數組的類型,初始化一個空數組的時候,也可以簡寫成”[]“。也可以在初始化數組的時候,給數組提供一個長度以及初始化的值。還可以通過數組字面量的形式來初始化數組。
var intArr = [Int]()
print("intArr is of type [Int] with \(intArr.count) items.")
//打印結果:intArr is of type [Int] with 0 items.
intArr.append(1)
//現在intArr里面有1個值了
intArr = []
//intArr 又是一個空數組了,不過它的類型還是[int]
var doubleArr = Array(repeating:0.0, count:5)
// doubleArr是個Double類型的數組,默認值是[0.0,0.0,0.0,0.0,0.0]
var strArr = ["Apple","Orange"]
// strArr是個String類型的數組
- 跟Objective-C一樣,數組可以通過下標進行賦值和取值。不過,Swift還提供了一次性修改某個區間內數組的值。
print(strArr[0]) //打?。篈pple
strArr[0..<2] = ["Bananas","Juice"]
//現在strArr是["Bananas","Juice"]了
- 數組類型的提供了insert(_:at:)和remove(at:)以及removeLast()來對數組進行插入和刪除操作。
strArr.insert("Apple",at:0)
//strArr的值現在是["Apple","Bananas","Juice"]
let apple = strArr.remove(at:0)
//apple是"Apple",strArr里面還剩下兩個值了
print(strArr[0])
//打印結果:Bananas
let juice = strArr.removeLast()
//juice的值是"Juice",strArr還剩下一個值
- 可以通過for-in循環來遍歷數組。如果需要在循環過程中獲取下標值,可以通過數組的enumerated()來返回(下標,值)這樣的元組。
for item in strArr{
print(item)
}
//循環輸出下標和值
for (index,item) in strArr.enumerated(){
print("Item \(index + 1): \(item)")
}
- 示例代碼運行結果如下。