陣列基礎知識
Array
是 Swift 標準庫中的有序集合型別。它提供 O(1)
隨機訪問和動態重新分配。Array 是泛型型別 ,因此它包含的值的型別在編譯時是已知的。
由於 Array
是一種值型別 ,因此它的可變性是通過註釋為 var
(可變)還是 let
(不可變)來定義的。
型別 [Int]
(意思是:包含 Int
s 的陣列)是 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)