久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

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

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

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

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

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

Swift數(shù)組截取詳解

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

一、基本概念

1、Swift數(shù)組


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

2、ArraySlice數(shù)組片段

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


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

二、下標(biāo)截取

1、使用整型下標(biāo)對(duì)數(shù)組進(jìn)行截取


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

2、使用Range下標(biāo)對(duì)數(shù)組進(jìn)行截取


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

3、使用切片下標(biāo)對(duì)數(shù)組進(jìn)行截取

切片下標(biāo)語(yǔ)法如下:


arr[startIndex..

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


//定義一個(gè)包含整型數(shù)據(jù)的數(shù)組
var arr: Array = [120, 130, 140, 150, 160]
//使用切片下標(biāo)進(jìn)行截取
let subArr = arr[1...3] //包含終止位置
let subArr2 = arr[1..<3] //不包含終止位置
print(subArr) //[130, 140, 150]
print(subArr2) //[130, 140]

三、截取String類型數(shù)組

1、使用Range下標(biāo)對(duì)數(shù)組進(jìn)行截取


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

2、使用切片下標(biāo)對(duì)數(shù)組進(jìn)行截取


//定義一個(gè)包含字符串?dāng)?shù)據(jù)的數(shù)組
var strArr: Array = ["one", "two", "three", "four", "five"]
//使用切片下標(biāo)進(jìn)行截取
let subArr = strArr[1...3] //包含終止位置
let subArr2 = strArr[1..<3] //不包含終止位置
print(subArr) //["two", "three", "four"]
print(subArr2) //["two", "three"]

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

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

prefix方法語(yǔ)法如下:


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

其中,maxLength表示截取的最大長(zhǎng)度。


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

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

suffix方法語(yǔ)法如下:


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

其中,maxLength表示截取的最大長(zhǎng)度。


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

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

dropFirst方法語(yǔ)法如下:


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

其中,k表示要截取的元素?cái)?shù)量。


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

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

dropLast方法語(yǔ)法如下:


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

其中,k表示要截取的元素?cái)?shù)量。


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

五、異常情況處理

1、下標(biāo)越界

當(dāng)截取的范圍超過(guò)數(shù)組邊界時(shí),Swift會(huì)拋出一個(gè)fatal error,需要在代碼中進(jìn)行異常處理。


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

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

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


//定義一個(gè)空數(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)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
inputref用法介紹

針對(duì)inputref這個(gè)輸入框引用對(duì)象,本文將從以下幾個(gè)方面進(jìn)行詳細(xì)的闡述,包括:常見用法、特殊用法、如何實(shí)現(xiàn)等內(nèi)容。一、常見用法inputref是一...詳情>>

2023-11-21 18:57:06
詳解192.168.81

一、192.168.81的登陸入口192.168.81是一個(gè)常見的路由器IP地址,它提供了多種登錄入口。其中,192.168.81.1是最常用的入口地址之一。在默認(rèn)情況...詳情>>

2023-11-21 18:46:18
set+e在編程中的應(yīng)用

一、什么是set+eSet+e是一種在編程中廣泛應(yīng)用的數(shù)據(jù)結(jié)構(gòu),也被稱為集合。簡(jiǎn)單來(lái)說(shuō),集合就是一組互不相同的元素。在編程中,Set+e通常用于存儲(chǔ)...詳情>>

2023-11-21 17:27:06
實(shí)卡接碼短信平臺(tái)及其應(yīng)用

一、平臺(tái)介紹實(shí)卡接碼短信平臺(tái)是一種可以自動(dòng)處理短信驗(yàn)證碼的平臺(tái)。該平臺(tái)主要由短信接口、卡池管理、卡池調(diào)度、號(hào)碼顯匿、號(hào)碼推送等模塊組成...詳情>>

2023-11-21 16:43:54
Nginx日志格式詳解

一、Nginx日志格式Nginx是一款高性能的HTTP和反向代理服務(wù)器,它采用默認(rèn)的日志格式記錄所有請(qǐng)求和響應(yīng)。Nginx日志格式由以下幾個(gè)部分組成:log...詳情>>

2023-11-21 16:15:06