2. 数组的基本用法
- 数组名.count: 数组元素个数
- 数组名.isEmpty: 判断数组是否为空,返回是布尔类型
- 通过索引值(数组下标)获取元素(数组从0开始索引,索引值为0的是第一个数组元素):
.数组名[索引值]
- 注意:用数字索引会发生索引越界问题,需要开发者控制。
数组名.first / .last: 取数组的第一个 / 最后一个元素, 返回的是可选型(有的数组不一定存在第一个或者最后一个元素)
可选类型应用:空数组名.first 返回的是 nil
在实际使用.first的时候可以解包使用如:if let 变量名 = 数组名.first{ 使用到该数组第一个元素的语句 }(这样使用可在遇到空数组或者没有第一个元素的时候不会崩溃)
let定义为常量时,数组不会变化(用户修改不了),可确定数组是否为空来确定是否可以强制解包,这里安全性是由开发人员来保障。
逻辑判断最后一个元素:数组名[数组名.count - 1]
数组名.minElement() / .maxElement(): 返回可选型
获取一定范围的子数组:
数组名[范围(eg:1..<4)]
数组名.contains():验证返回这个数组是否存在某个元素,返回布尔类型
数组名.indexOf():验证这个数组是否存在某个元素,但返回的是索引值
for循环遍历数组获取数组元素、数组元素索引值(.enumerate())
for 变量名 in 数组名 {对获取的数组元素进行操作}
for (索引变量名, 元素变量名) in 数组名.enumerate() {使用到索引值和元素的语句}
数组名1 == 数组名2 :其他语言比较的是引用(也是地址吧),此语句不成立,swift比较的是值,故此语句成立。
强调:数组是一个有序的数据集合(在比较的时候要特别注意)
学习或创建一个数据结构注重对增、删、改、查的学习
创建一个数组:
增:
.append(添加内容): 依次为数组添加元素
数组名 += [添加内容]: 即使只添加一个元素也需要[],因为参与运算的元素要是一致数据类型的
.insert(添加的内容, atIndex: 索引):遇到索引就要注意索引越界问题
删:
.removeLast():删除数组最后一个元素
.removeFirst():删除数组的第一个元素
.removeAtIndex(索引值):删除特定(索引值对应)的数组元素
.removeRange(索引范围):删除特定范围(索引范围对应的)的数组元素
.removeAll():删除所有元素,该数组为空数组
改:
数组名[索引值] = [修改内容]:修改对应索引的内容
数组名[索引范围] = [对应索引范围的修改内容]:修改对应索引范围的内容,注意索引范围的索引个数和修改内容数组的元素个数并不一致。