-数组
- 数组的演练
/// 数组的定义 []
func demo1() {
// [String] -> 表示存放字符串的数组
// 根据右侧的内容自动推导数组中的元素类型
let array = ["zhang", "wang", "li"]
// [Int],Swift中基本数据类型不需要包装,Int 是一个结构体
let array1 = [1, 2, 3, 4, 5]
// [NSObject](继承自 NSObject 的子类) ->
// [AnyObject],在 Swift 中使用的更多,任意对象
// Swift 中允许对象没有任何父类
// 如果数组中的元素类型不一致,会推导出 [NSObject] 类型
let array2 = [1, "zhang"]
print(array)
}
}
/// 遍历数组
func demo2() {
// [String]
let array = ["zhang", "wang", "li”]
// 1. 直接按照下标遍历
for i in 0..<array.count {
print(array[i])
}
// 2. for in
// s 的类型取决于 数组的类型
for s in array {
print(s)
}
// 3. 遍历内容和下标
for e in array.enumerate() {
print("\(e.index) \(e.element)")
}
// 4. 示例代码
// n 就是索引,s 就是字符串
// n 和 s 的名字可以随便写
for (n, s) in array.enumerate() {
print("\(n) \(s)")
)
print("----")
// 5. 倒序遍历数组
for s in array.reverse() {
print(s)
}
// 6. 倒序下标遍历
for e in array.reverse().enumerate() {
print(e)
print("\(e.index) \(e.element)")
}
}
/// 增删改 -> 可变 NSMutableArray -- var / 不可变 NSArray -- let
func demo3() {
var array = ["zhang", "wang", "li"]
// 添加内容 addObject
array.append(“小花")
print(array)
// 以下代码有问题吗?
// Cannot convert value of type 'Int' to expected argument type 'String'
// 不能向数组中追加不允许的类型
// array.append(180)
// 修改
array[0] = "老王"
print(array)
// 删除全部
// 其他的语法 remove 开头,大家可以课后练习!
array.removeAll()
print(array)
}
/// 演示数组的容量
func demo4() {
/// 定义类型,没有初始化,如果定义一个空的数组
// var array: [String]
// // 实例化一个空的字符串数组
// array = [String]()
// 以上两句代码也可以合并成一条语句
var array = [Int]()
print(array.capacity)
// 关于容量:数组的初始容量默认是0
// 在添加元素的时候,如果超出当前容量范围,在当前容量范围基础上 * 2
for i in 0..<9 {
array.append(i)
print("\(array) -- 容量 : \(array.capacity)")
}
}
/// 合并数组
func demo5() {
var a1 = [1, 2, 3]
let a2 = [4, 5, 6]
// 目标,将 a2 合并到 a1 中
a1 += a2
print(a1)
}