Swift基础 Array数组

这篇博客探讨了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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值