Swift Arrays

Los arrays de Swift usan listas ordenadas para almacenar múltiples valores del mismo tipo. El mismo valor puede aparecer varias veces en diferentes posiciones de un array.

Los arrays de Swift fuerzan la comprobación del tipo de los elementos; si el tipo es diferente, se producirá un error. Los arrays de Swift deben seguir una forma como Array<Element>, donde Element es el único tipo de datos permitido en ese array.

Si creas un array y lo asignas a una variable, la colección creada será modificable. Esto significa que después de crear el array, puedes cambiar los elementos del array mediante adición, eliminación o modificación. Si asignas un array a una constante, el array no se puede modificar, y tanto su tamaño como su contenido no pueden cambiarse.


Crear Arrays

Podemos usar la sintaxis de construcción para crear un array vacío compuesto por un tipo de datos específico:

var someArray = [SomeType]()

La siguiente es la sintaxis para crear un array con un tamaño inicializado:

var someArray = [SomeType](repeating: InitialValue, count: NumbeOfElements)

El siguiente ejemplo crea un array vacío de tipo Int, con cantidad 3 y valor inicial 0:

var someInts = [Int](repeating: 0, count: 3)

El siguiente ejemplo crea un array con tres elementos:

var someInts:[Int] = [10, 20, 30]

Acceder a los Arrays

Podemos acceder a los elementos del array según su índice, con la siguiente sintaxis:

var someVar = someArray[index]

El índice comienza desde 0, es decir, el índice 0 corresponde al primer elemento, el índice 1 al segundo elemento, y así sucesivamente.

Podemos aprender cómo crear, inicializar y acceder a los arrays mediante el siguiente ejemplo:

import Cocoa

var someInts = [Int](repeating: 10, count: 3)

var someVar = someInts[0]

print( "第一个元素的值 \(someVar!)" )
print( "第二个元素的值 \(someInts[1]!)" )
print( "第三个元素的值 \(someInts[2]!)" )

El resultado de la ejecución del programa anterior es:

第一个元素的值 10
第二个元素的值 10
第三个元素的值 10

Modificar Arrays

Puedes usar el método append() o el operador de asignación += para añadir elementos al final del array. Como se muestra a continuación, inicializamos un array y le añadimos elementos:

import Cocoa

var someInts = [Int]()

someInts.append(20)
someInts.append(30)
someInts += [40]

var someVar = someInts[0]

print( "第一个元素的值 \(someVar)" )
print( "第二个元素的值 \(someInts[1])" )
print( "第三个元素的值 \(someInts[2])" )

El resultado de la ejecución del programa anterior es:

第一个元素的值 20
第二个元素的值 30
第三个元素的值 40

También podemos modificar el valor de los elementos del array mediante el índice:

import Cocoa

var someInts = [Int]()

someInts.append(20)
someInts.append(30)
someInts += [40]

// 修改最后一个元素
someInts[2] = 50

var someVar = someInts[0]

print( "第一个元素的值 \(someVar)" )
print( "第二个元素的值 \(someInts[1])" )
print( "第三个元素的值 \(someInts[2])" )

El resultado de la ejecución del programa anterior es:

第一个元素的值 20
第二个元素的值 30
第三个元素的值 50

Recorrer Arrays

Podemos usar un bucle for-in para recorrer todos los elementos de datos del array:

import Cocoa

var someStrs = [String]()

someStrs.append("Apple")
someStrs.append("Amazon")
someStrs.append("Ejemplo")
someStrs += ["Google"]

for item in someStrs {
   print(item)
}

El resultado de la ejecución del programa anterior es:

Apple
Amazon
Ejemplo
Google

Si necesitamos tanto el valor como el índice de cada elemento, podemos usar el método enumerated() de String para recorrer el array. Ejemplo:

import Cocoa

var someStrs = [String]()

someStrs.append("Apple")
someStrs.append("Amazon")
someStrs.append("Ejemplo")
someStrs += ["Google"]

for (index, item) in someStrs.enumerated() {
    print("在 index = \(index) 位置上的值为 \(item)")
}

El resultado de la ejecución del programa anterior es:

在 index = 0 位置上的值为 Apple
在 index = 1 位置上的值为 Amazon
在 index = 2 位置上的值为 Ejemplo
在 index = 3 位置上的值为 Google

Fusionar Arrays

Podemos usar el operador de suma (+) para fusionar dos arrays existentes del mismo tipo. El tipo de datos del nuevo array se deducirá de los tipos de datos de los dos arrays:

import Cocoa

var intsA = [Int](repeating: 2, count:2)
var intsB = [Int](repeating: 1, count:3)

var intsC = intsA + intsB

for item in intsC {
    print(item)
}

El resultado de la ejecución del programa anterior es:

2
2
1
1
1

Propiedad count

Podemos usar la propiedad count para calcular el número de elementos del array:

import Cocoa

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)

var intsC = intsA + intsB

print("intsA 元素个数为 \(intsA.count)")
print("intsB 元素个数为 \(intsB.count)")
print("intsC 元素个数为 \(intsC.count)")

El resultado de la ejecución del programa anterior es:

intsA 元素个数为 2
intsB 元素个数为 3
intsC 元素个数为 5

Propiedad isEmpty

Podemos usar la propiedad de solo lectura isEmpty para determinar si el array está vacío; devuelve un valor booleano:

import Cocoa

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)
var intsC = [Int]()

print("intsA.isEmpty = \(intsA.isEmpty)")
print("intsB.isEmpty = \(intsB.isEmpty)")
print("intsC.isEmpty = \(intsC.isEmpty)")

El resultado de la ejecución del programa anterior es:

intsA.isEmpty = false
intsB.isEmpty = false
intsC.isEmpty = true
Otras Extensiones