数组基础知识

Array 是 Swift 标准库中的有序集合类型。它提供 O(1) 随机访问和动态重新分配。Array 是泛型类型 ,因此它包含的值的类型在编译时是已知的。

由于 Array 是一种值类型 ,因此它的可变性是通过注释为 var(可变)还是 let(不可变)来定义的。

类型 [Int](意思是:包含 Ints 的数组)是 Array<T>语法糖

阅读 Swift 编程语言中有关数组的更多信息。

空数组

以下三个声明是等效的:

// A mutable array of Strings, initially empty.

var arrayOfStrings: [String] = []      // type annotation + array literal
var arrayOfStrings = [String]()        // invoking the [String] initializer
var arrayOfStrings = Array<String>()   // without syntactic sugar

数组文字

数组文字用方括号编写,用逗号分隔的元素组成:

// Create an immutable array of type [Int] containing 2, 4, and 7
let arrayOfInts = [2, 4, 7]

编译器通常可以根据文字中的元素推断数组的类型,但显式类型注释可以覆盖默认值:

let arrayOfUInt8s: [UInt8] = [2, 4, 7]   // type annotation on the variable
let arrayOfUInt8s = [2, 4, 7] as [UInt8] // type annotation on the initializer expression
let arrayOfUInt8s = [2 as UInt8, 4, 7]   // explicit for one element, inferred for the others

具有重复值的数组

// An immutable array of type [String], containing ["Example", "Example", "Example"]
let arrayOfStrings = Array(repeating: "Example",count: 3)

从其他序列创建数组

let dictionary = ["foo" : 4, "bar" : 6]

// An immutable array of type [(String, Int)], containing [("bar", 6), ("foo", 4)]
let arrayOfKeyValuePairs = Array(dictionary)

多维数组

在 Swift 中,通过嵌套数组创建多维数组:Int 的二维数组是 [[Int]](或 Array<Array<Int>>)。

let array2x3 = [
    [1, 2, 3],
    [4, 5, 6]
]
// array2x3[0][1] is 2, and array2x3[1][2] is 6.

要创建重复值的多维数组,请使用数组初始值设定项的嵌套调用:

var array3x4x5 = Array(repeating: Array(repeating: Array(repeating: 0,count: 5),count: 4),count: 3)