Swift基础 Array数组

Array数组

数组是用来存储相同类型数值的序列化列表。

    let studentName : [NSString] = ["xiaoMing","xiaoHong"]
    var studentHeight : Array<CGFloat> = [172.5,168]
    studentHeight[1] = 168.5
    print(studentName)
    print(studentHeight)

运行结果:

[xiaoMing, xiaoHong]
[172.5, 168.5]

快捷定义:

var shoppingList = []

通过初始化构造器定义数组:

var arr1 = [Int]()//定义可变的空数组
arr1.append(10)//往里添加数组

//通过初始化器生成用0填充,元素个数为10的数组。
var arr2 = Array(repeating:0, count:10)

swift中的数组还可以存储不同类型的值

    let xiaoMing = [2021,172.5,"男","计算机科学与技术"] as [Any]
    var xiaoHong = [2021,168.5,"女","汉语言文学"] as [Any]
    xiaoHong[3] = "会计"
    print(xiaoMing)
    print(xiaoHong)

运行结果:

[2021, 172.5, "男", "计算机科学与技术"]
[2021, 168.5, "女", "会计"]

数组相关的一些方法及处理:

插入元素、修改元素、添加元素

    let xiaoMing = [2021,172.5,"男","计算机科学与技术","xiaoMing"] as [Any]
    var xiaoHong = [2021,168.5,"女","汉语言文学"] as [Any]
    //在0的位置 插入元素
    xiaoHong.insert(2021, at: 0)
    //修改位置为3的元素
    xiaoHong[3] = "会计"
    //末尾添加元素
    xiaoHong += ["xiaoHong"]
    print("xiaoMing同学的数据个数:\(xiaoMing.count)")
    let students = xiaoHong+xiaoMing
    print("转学生资料:\(students)")

运行结果:

xiaoMing同学的数据个数:5
转学生资料:[2021, 2021, 168.5, "会计", "汉语言文学", "xiaoHong", 2021, 172.5, "男", "计算机科学与技术", "xiaoMing"]

除一些常见的方式以外,还有通过区间运算符进行修改元素。

var array = ["xiaoMing",172.5,"xiaoHong",168.5]
array.replaceSubrange((0...1),with:["xiaoHua",155.0])

数组的排序

var array = ["A","B","C","D","E"]
array.sort(by:{
    
    (s1,s2) -> Bool in
	if(s1>s2){
    
    
		return true
	}else{
    
    
		return false
	}
})
print(array)
//输出结果:["E","D","C","B","A"]
/*sort接受的是一个block闭包,
sort是任意两个变量s1与s2相比较,
该block返回的结果true或false表示是否进行换位排序。*/

数组的过滤

var array = ["A","B","C","D","E"]
array = array.filter({
    
    (item) -> Bool in
	if(item=="D"){
    
    
		//如果是D就丢弃
		return false
	}else{
    
    
		return true
	}
})
print(array)
//输出结果:["A","B","C","E"]

数组的一些奇奇怪怪的用法

可以直接遍历数组指定位置的元素

let mysteriousNumbers = [0,1,1,2,3,5,8,13,21,34,55,89]

for content in mysteriousNumbers[3 ... 10]{
    
    
    print("content:\(content)")
}

PS:需要注意的是,对于for后声明的变量,因为in后面跟的是一个数组而不是一个range范围,所以for后面变量的值是数组中的元素,而不是当前遍历的index。

猜你喜欢

转载自blog.csdn.net/kkkenty/article/details/124606900