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]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。