Swift数组详细用法解析
一、说明
Swift数组中的类型必须一致,这一点与OC不同
//数组初始化 varnumbers=[0,1,2,3,4,5] varvowels=["A","E","I","O","U"] //数组的类型:[Int]或者Array<Int> //varnumbers:[Int]=[0,1,2,3,4,5] //varnumbers:Array<Int>=[0,1,2,3,4,5] //空数组 varemptyArray1:[Int]=[] varemptyArray2:Array<Int>=[] varemptyArray3=[Int]() varemptyArray4=Array<Int>() //创建具有默认值的数组(相同元素的数组) varallZeros=Array<Int>(repeating:0,count:5) //[0,0,0,0,0] varallZeros2=[Int](repeating:0,count:5) //[0,0,0,0,0]
二、常用方法
varnumbers=[1,2,3,4,5] varvowels=["A","E","I","O","U"] varemptyArray=[Int]() //数组长度 vowels.count //判空 numbers.isEmpty emptyArray.isEmpty //获取元素 vowels[2] //数组越界是一个严重的错误 //vowels[-1] //vowels[5] //获取第一个元素和最后一个元素,返回的是可选型 vowels.first vowels.last//.first和.last的返回值都为可选型 emptyArray.first ifletfirstVowel=vowels.first{ print("Thefirstvowelis"+firstVowel) } vowels.first! vowels[vowels.count-1] //获取最小,最大值 numbers.min()//1 vowels.max()//U //使用范围 numbers[2..<4]//[3,4] numbers[2..<numbers.count]//[3,4,5] //包含 vowels.contains("A") vowels.contains("B") letletter="A" ifvowels.contains(letter){ print("\(letter)isavowel") } else{ print("\(letter)isnotavowel") } vowels.index(of:"E")//获取索引,返回值为可选型 ifletindex=vowels.index(of:"E"){ print("Eisavowelinposition\(index+1).") } else{ print("Eisnotavowel.") } //遍历 forindexin0..<numbers.count{ numbers[index] } fornumberinnumbers{ print(number) } for(index,vowel)invowels.enumerated(){ //遍历数组索引和元素 print("\(index+1):\(vowel)") } //比较 varoneToFive=[1,2,3,4,5] numbers==oneToFive//true varoneToFive2=[1,2,4,3,5] numbers==oneToFive//true //swift3.0之前数组是有序的数据集合,swift3.0后为无序
三、更多操作
varcourses=["A","B","C"] //添加元素 courses.append("D")//["A","B","C","D"] print(courses) //数组常量 //使用let定义的数组不可以更改任何内容 courses+=["E"]//+=后面必须和前面的类型一致//["A","B","C","D","E"] print(courses) //两个数组相加 courses=courses+["F","G"]//+后面必须是数组 //["A","B","C","D","E","F","G"] print(courses) courses.insert("Q",at:5) //["A","B","C","D","E","Q","F","G"] print(courses) //删除元素 courses.removeLast() //["A","B","C","D","E","Q","F"] print(courses) courses.removeFirst() //["B","C","D","E","Q","F"] print(courses) courses.remove(at:4) //["B","C","D","E","F"] //courses.removeAtIndex(10) print(courses) //区间删除操作 //courses.removeRange(0..<4) //courses.removeRange(0..<10) //print(courses) //courses.removeAll() //print(courses) //修改元素 courses[0]="W" //["W","C","D","E","F"] print(courses) //范围修改 courses[1...3]=["W","W","W"] //["W","W","W","W","F"] print(courses) courses[0...3]=["W"] //["W","F"] print(courses)
四、二维数组
varboard=[[1024,16,2,0],[256,4,2,0],[64,2,0,0],[2,0,0,0]] //varboard:[[Int]]=[[1024,16,2,0],[256,4,2,0],[64,2,0,0],[2,0,0,0]] //varboard:[Array<Int>]==[[1024,16,2,0],[256,4,2,0],[64,2,0,0],[2,0,0,0]] //varboard:Array<[Int]>=[[1024,16,2,0],[256,4,2,0],[64,2,0,0],[2,0,0,0]] //varboard:Array<Array<Int>>=[[1024,16,2,0],[256,4,2,0],[64,2,0,0],[2,0,0,0]] //二维数组获取元素 board[0] board[0][0] //获取二维数组两个维度的信息 board.count board[0].count //Swift中的二维数组,每一维度的元素数目可以不同 board[0].append(0) board //为二维数组的第一个维度添加的元素是一个数组 board.append([0,0,0,0]) board+=[[0,0,0,0]] board
五、NSArray
NSArray是一个类,Array是一个结构体
vararray1=[]//会默认是NSArray,swift3.0之后该写法废除 vararray2=[1,2,3,4,5]asNSArray vararray3:NSArray=[1,"hello"] vararray4:[NSObject]=[1asNSObject,"hello"asNSObject]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。