数组的使用(1)
创建数组
-
字面量创建
可以使用数组字面量来初始化一个数组,它是一种以数组集合来写一个或者多个值的简写方式。数组字面量写做一系列的值,用逗号分隔,用方括号括起来。let array = [1,2,3,4]
-
字面量创建空数组
创建空数组的时候必须携带类型信息。let array:[Int] = []; let array2:[String] = []; let array3 = []; // 报错
如果内容已经提供了类型信息,你可以通过空数组字面量来从新赋值
var array = [1,2,3,4] print(array) // 打印: [1,2,3,4] array = [] print(array) // 打印:[]
-
初始化器
使用初始化器有两种方式- [ 类型 ]()
- Array<类型>()
var myArray = [Sting](); var myArray = Array<String>()
-
初始化器参数
- init(repeating repeatedValue: Element, count: Int)
- init(arrayLiteral elements: Element)
- init<S>(_ elements: S) where S: Sequence, Self.Element == s.Element
- init(from decoder: Decoder) throws
数组遍历和索引
-
数组遍历
- For-in
- forEach方法
- 无法使用break和continue 退出或者跳过循环
- 使用return只能退出当前一次循环的执行体
let numbers = [Int](0...7) for number in numbers { print(number) } // 打印: 0 1 2 3 4 5 6 7 numbers.forEach {(num) in if num == 3 { return } print(num) } // 打印: 0 1 2 4 5 6 7 numbers.forEach {(num) in if num == 3 { break } print(num) } // 报错
-
同时得到索引和值 enumerated()
let numbers = [Int](0...5) for (index, num) in numbers.enumerated() { print("index:(index), value:(num)") }
-
使用Iterator遍历数组
let numbers = [Int](2...7) var numIterator = numbers.makeIterator() while let num = numIterator.next() { print(num); }
-
数组索引
- startIndex : 返回第一个元素的位置, 对于数组来说, 永远都是0
- endIndex : 返回最后一个元素索引 +1 的位置, 对于数组来说, 等同于count
- indices : 获取数组的索引区间
let numbers = [Int](0...5) print(numbers.startIndex) // 打印: 0 print(numbers.endIndex) // 打印:6 for i in numbers.indices { print(numbers[i]) } // 打印 0 1 2 3 4 5