1、数组的定义
func demo() {
//定义数组
let array = ["小明", "小红", "小黑"]
//自动推导的结果 -> 表示数组中存放的都是 String
print(array)
}
func demo1() {
let array1 = [1, 2, 3, 4, 5]
print(array1)
//输出结果:[1, 2, 3, 4, 5]
}
func demo2() {
let p = CGPoint(x: 10, y: 20)
let array2 = [p]
print(array2)
//输出结果:[(10.0, 20.0)]
}
func demo3() {
let p = CGPoint(x: 10, y: 20)
let array3 = ["小明", 12, NSValue(cgPoint:p)] as [Any]
print(array3)
//输出结果:[(10.0, 20.0)]
}
小结:
- 1、混合数组:开发中几乎不用,因为数组是靠下标索引
- 2、如果数组中的类型不一致,自动推导的结果[NSObject]
- 3、在swift中还有一种类型[Anyobject] ->任意对象
- 4、在swift中一个类可以没有任何‘父类’
- 5、在混合的数组中,CG 结构体需要包装
2、数组遍历
func demo4() {
let array = ["张三", "李四", "王五"]
//1、按照下标遍历
print("--- 按照下标遍历 ---")
for i in 0..<array.count {
print(array[i])
//输出结果:
// 张三
// 李四
// 王五
}
//2、for in 遍历元素
print("---for in 遍历元素 ---")
for s in array {
print(s)
// 输出结果:
// 张三
// 李四
// 王五
}
//3、enum block 遍历元素, 同时遍历下标和内容
print("--- enum block 遍历元素, 同时遍历下标和内容 ---")
for e in array.enumerated() {
// print(e)
print("\(e.offset) \(e.element)")
// 输出结果:
// 0 张三
// 1 李四
// 2 王五
}
//4、遍历下标和内容2
print("___ 遍历下标和内容2 ____")
for (n, s) in array.enumerated() {
print("\(n) \(s)")
// 输出结果:
// 0 张三
// 1 李四
// 2 王五
}
//5、反序遍历
print("___ 反序遍历 ___")
for s in array.reversed() {
print(s)
// 输出结果:
// 王五
// 李四
// 张三
}
//6、反序列索引&内容
print("___ 反序列索引&内容 ___")
for (n, s) in array.reversed().enumerated() {
print("\(n) - \(s)")
// 输出结果:
// 0 - 王五
// 1 - 李四
// 2 - 张三
}
//7、先枚举、再反序
print("___ 先枚举、再反序 ___")
for (n, s) in array.enumerated().reversed() {
print("\(n) - \(s)")
}
// 输出结果:
// 2 - 王五
// 1 - 李四
// 0 - 张三
}
3、数组的 增、删、改
func demo5() {
var array = ["小明", "小红", "小黑"]
print(array)
//输出结果:["小明", "小红", "小黑"]
//1、增加元素
array.append("小敏")
print(array)
//输出结果:["小明", "小红", "小黑", "小敏"]
//2、修改
array[0] = "小七"
print(array)
//输出结果:["小七", "小红", "小黑", "小敏"]
//3、删除元素
array.remove(at: 2)
print(array)
//输出结果:["小七", "小红", "小敏"]
//4、删除全部元素,并且保留空间
array.removeAll(keepingCapacity: true)
print("\(array) 容量\(array.capacity)")
//输出结果:[] 容量6
array.removeAll()
print("\(array) 容量\(array.capacity)")
//输出结果:[] 容量0
}
4、数组合并
func demo6() {
var array = [1, 2, 3, 4, 5]
let array1 = [5, 4, 3, 2, 1]
array += array1
print(array)
//合并后的结果:[1, 2, 3, 4, 5, 5, 4, 3, 2, 1]
}
小结:数组合并时:要合并数组的两个类型必须一致