Swift Language Conceptos básicos de matrices


Ejemplo

Array es un tipo de colección ordenada en la biblioteca estándar de Swift. Proporciona O (1) acceso aleatorio y reasignación dinámica. La matriz es un tipo genérico , por lo que el tipo de valores que contiene se conocen en tiempo de compilación.

Dado que Array es un tipo de valor , su mutabilidad se define por su anotación como var (mutable) o let (immutable).

El tipo [Int] (que significa: una matriz que contiene Int s) es azúcar sintáctica para Array<T> .

Lee más sobre matrices en el lenguaje de programación Swift .

Arreglos vacíos

Las siguientes tres declaraciones son equivalentes:

// 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

Literales array

Un literal de matriz se escribe con corchetes que rodean los elementos separados por comas:

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

El compilador generalmente puede inferir el tipo de una matriz basada en los elementos en el literal, pero las anotaciones de tipo explícitas pueden invalidar el valor predeterminado:

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

Arreglos con valores repetidos.

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

Creando arrays desde otras secuencias.

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

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

Matrices multidimensionales

En Swift, se crea una matriz multidimensional anidando matrices: una matriz bidimensional de Int es [[Int]] (o Array<Array<Int>> ).

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

Para crear una matriz multidimensional de valores repetidos, use llamadas anidadas del inicializador de matriz:

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