一、基本概念
1、Swift數組
//定義一個包含整型數據的數組
var arr: Array = [120, 130, 140, 150, 160]
2、ArraySlice數組片段
ArraySlice是數組的一個“指針”,它指向一個原數組的片段,包含原數組的某些位置。在這個基礎上,我們可以實現對原數組的截取。
//定義一個包含整型數據的數組
var arr: Array = [120, 130, 140, 150, 160]
//使用ArraySlice進行截取
let arrSlice = arr[1...3]
//ArraySlice的類型是一個Slice>對象
print(type(of: arrSlice)) //Slice>
二、下標截取
1、使用整型下標對數組進行截取
//定義一個包含整型數據的數組
var arr: Array = [120, 130, 140, 150, 160]
//使用整型下標進行截取
let subArr = arr[1...3]
print(subArr) //[130, 140, 150]
2、使用Range下標對數組進行截取
//定義一個包含整型數據的數組
var arr: Array = [120, 130, 140, 150, 160]
//使用Range下標進行截取
let subArr = arr[1..<3]
print(subArr) //[130, 140]
3、使用切片下標對數組進行截取
切片下標語法如下:
arr[startIndex..
其中,startIndex表示起始位置,endIndex表示終止位置,兩個點(..)表示包含終止位置,三個點(...)表示不包含終止位置。
//定義一個包含整型數據的數組
var arr: Array = [120, 130, 140, 150, 160]
//使用切片下標進行截取
let subArr = arr[1...3] //包含終止位置
let subArr2 = arr[1..<3] //不包含終止位置
print(subArr) //[130, 140, 150]
print(subArr2) //[130, 140]
三、截取String類型數組
1、使用Range下標對數組進行截取
//定義一個包含字符串數據的數組
var strArr: Array = ["one", "two", "three", "four", "five"]
//使用Range下標進行截取
let subArr = strArr[1..<3]
print(subArr) //["two", "three"]
2、使用切片下標對數組進行截取
//定義一個包含字符串數據的數組
var strArr: Array = ["one", "two", "three", "four", "five"]
//使用切片下標進行截取
let subArr = strArr[1...3] //包含終止位置
let subArr2 = strArr[1..<3] //不包含終止位置
print(subArr) //["two", "three", "four"]
print(subArr2) //["two", "three"]
四、使用數組方法進行截取
1、使用prefix方法獲取數組前幾個元素
prefix方法語法如下:
arr.prefix(_ maxLength: Int) -> ArraySlice
其中,maxLength表示截取的最大長度。
//定義一個包含整型數據的數組
var arr: Array = [120, 130, 140, 150, 160]
//使用prefix方法獲取前3個元素
let subArr = arr.prefix(3)
print(subArr) //[120, 130, 140]
2、使用suffix方法獲取數組后幾個元素
suffix方法語法如下:
arr.suffix(_ maxLength: Int) -> ArraySlice
其中,maxLength表示截取的最大長度。
//定義一個包含字符串數據的數組
var strArr: Array = ["one", "two", "three", "four", "five"]
//使用suffix方法獲取后3個元素
let subArr = strArr.suffix(3)
print(subArr) //["three", "four", "five"]
3、使用dropFirst方法截取數組頭部元素
dropFirst方法語法如下:
arr.dropFirst(_ k: Int) -> ArraySlice
其中,k表示要截取的元素數量。
//定義一個包含整型數據的數組
var arr: Array = [120, 130, 140, 150, 160]
//使用dropFirst方法截取前兩個元素
let subArr = arr.dropFirst(2)
print(subArr) //[140, 150, 160]
4、使用dropLast方法截取數組尾部元素
dropLast方法語法如下:
arr.dropLast(_ k: Int) -> ArraySlice
其中,k表示要截取的元素數量。
//定義一個包含字符串數據的數組
var strArr: Array = ["one", "two", "three", "four", "five"]
//使用dropLast方法截取后兩個元素
let subArr = strArr.dropLast(2)
print(subArr) //["one", "two", "three"]
五、異常情況處理
1、下標越界
當截取的范圍超過數組邊界時,Swift會拋出一個fatal error,需要在代碼中進行異常處理。
//定義一個包含整型數據的數組
var arr: Array = [120, 130, 140, 150, 160]
//下標越界異常處理示例
do {
let subArr = arr[1...10] //超過數組長度
print(subArr)
} catch let error {
print(error.localizedDescription) //Index out of range
}
2、使用數組方法截取空數組
當截取一個空數組時,由于沒有任何元素,使用數組方法進行截取將返回一個空的ArraySlice對象。需要在代碼中進行判斷和處理。
//定義一個空數組
var emptyArr: Array = []
//截取空數組異常處理示例
let subArr = emptyArr.prefix(3)
if subArr.isEmpty {
print("Empty Array") //Empty Array
}