千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術(shù)干貨  > Swift數(shù)組截取詳解

Swift數(shù)組截取詳解

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-21 16:00:41 1700553641

一、基本概念

1、Swift數(shù)組


//定義一個包含整型數(shù)據(jù)的數(shù)組
var arr: Array = [120, 130, 140, 150, 160]

2、ArraySlice數(shù)組片段

ArraySlice是數(shù)組的一個“指針”,它指向一個原數(shù)組的片段,包含原數(shù)組的某些位置。在這個基礎(chǔ)上,我們可以實現(xiàn)對原數(shù)組的截取。


//定義一個包含整型數(shù)據(jù)的數(shù)組
var arr: Array = [120, 130, 140, 150, 160]
//使用ArraySlice進行截取
let arrSlice = arr[1...3]
//ArraySlice的類型是一個Slice>對象
print(type(of: arrSlice)) //Slice>

二、下標截取

1、使用整型下標對數(shù)組進行截取


//定義一個包含整型數(shù)據(jù)的數(shù)組
var arr: Array = [120, 130, 140, 150, 160]
//使用整型下標進行截取
let subArr = arr[1...3]
print(subArr) //[130, 140, 150]

2、使用Range下標對數(shù)組進行截取


//定義一個包含整型數(shù)據(jù)的數(shù)組
var arr: Array = [120, 130, 140, 150, 160]
//使用Range下標進行截取
let subArr = arr[1..<3]
print(subArr) //[130, 140]

3、使用切片下標對數(shù)組進行截取

切片下標語法如下:


arr[startIndex..

其中,startIndex表示起始位置,endIndex表示終止位置,兩個點(..)表示包含終止位置,三個點(...)表示不包含終止位置。


//定義一個包含整型數(shù)據(jù)的數(shù)組
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類型數(shù)組

1、使用Range下標對數(shù)組進行截取


//定義一個包含字符串數(shù)據(jù)的數(shù)組
var strArr: Array = ["one", "two", "three", "four", "five"]
//使用Range下標進行截取
let subArr = strArr[1..<3]
print(subArr) //["two", "three"]

2、使用切片下標對數(shù)組進行截取


//定義一個包含字符串數(shù)據(jù)的數(shù)組
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"]

四、使用數(shù)組方法進行截取

1、使用prefix方法獲取數(shù)組前幾個元素

prefix方法語法如下:


arr.prefix(_ maxLength: Int) -> ArraySlice

其中,maxLength表示截取的最大長度。


//定義一個包含整型數(shù)據(jù)的數(shù)組
var arr: Array = [120, 130, 140, 150, 160]
//使用prefix方法獲取前3個元素
let subArr = arr.prefix(3)
print(subArr) //[120, 130, 140]

2、使用suffix方法獲取數(shù)組后幾個元素

suffix方法語法如下:


arr.suffix(_ maxLength: Int) -> ArraySlice

其中,maxLength表示截取的最大長度。


//定義一個包含字符串數(shù)據(jù)的數(shù)組
var strArr: Array = ["one", "two", "three", "four", "five"]
//使用suffix方法獲取后3個元素
let subArr = strArr.suffix(3)
print(subArr) //["three", "four", "five"]

3、使用dropFirst方法截取數(shù)組頭部元素

dropFirst方法語法如下:


arr.dropFirst(_ k: Int) -> ArraySlice

其中,k表示要截取的元素數(shù)量。


//定義一個包含整型數(shù)據(jù)的數(shù)組
var arr: Array = [120, 130, 140, 150, 160]
//使用dropFirst方法截取前兩個元素
let subArr = arr.dropFirst(2)
print(subArr) //[140, 150, 160]

4、使用dropLast方法截取數(shù)組尾部元素

dropLast方法語法如下:


arr.dropLast(_ k: Int) -> ArraySlice

其中,k表示要截取的元素數(shù)量。


//定義一個包含字符串數(shù)據(jù)的數(shù)組
var strArr: Array = ["one", "two", "three", "four", "five"]
//使用dropLast方法截取后兩個元素
let subArr = strArr.dropLast(2)
print(subArr) //["one", "two", "three"]

五、異常情況處理

1、下標越界

當截取的范圍超過數(shù)組邊界時,Swift會拋出一個fatal error,需要在代碼中進行異常處理。


//定義一個包含整型數(shù)據(jù)的數(shù)組
var arr: Array = [120, 130, 140, 150, 160]
//下標越界異常處理示例
do {
  let subArr = arr[1...10] //超過數(shù)組長度
  print(subArr)
} catch let error {
  print(error.localizedDescription) //Index out of range
}

2、使用數(shù)組方法截取空數(shù)組

當截取一個空數(shù)組時,由于沒有任何元素,使用數(shù)組方法進行截取將返回一個空的ArraySlice對象。需要在代碼中進行判斷和處理。


//定義一個空數(shù)組
var emptyArr: Array = []
//截取空數(shù)組異常處理示例
let subArr = emptyArr.prefix(3)
if subArr.isEmpty {
  print("Empty Array") //Empty Array
}

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學 138****2860 剛剛成功領(lǐng)取
王同學 131****2015 剛剛成功領(lǐng)取
張同學 133****4652 剛剛成功領(lǐng)取
李同學 135****8607 剛剛成功領(lǐng)取
楊同學 132****5667 剛剛成功領(lǐng)取
岳同學 134****6652 剛剛成功領(lǐng)取
梁同學 157****2950 剛剛成功領(lǐng)取
劉同學 189****1015 剛剛成功領(lǐng)取
張同學 155****4678 剛剛成功領(lǐng)取
鄒同學 139****2907 剛剛成功領(lǐng)取
董同學 138****2867 剛剛成功領(lǐng)取
周同學 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT