English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Arreglos (Array) en Swift

En este tutorial, aprenderá sobre los arrays, cómo crearlos, cómo acceder a los valores de los arrays y algunas operaciones comunes de los arrays.

en el post anteriorTipos de datos en SwiftEn el artículo, aprendimos cómo crear variables de tipos de datos que pueden almacenar un solo valor/constantes.

Pero, ¿qué pasa si queremos almacenar múltiples valores del mismo tipo de datos? En Swift, usamos lo que se llama Array las cosas.

¿Qué es un array?

Un array es solo un contenedor que puede guardar múltiples datos de un tipo de datos en una lista ordenada, es decir, puede obtener los elementos en el mismo orden que se definieron los elementos del array.

Los arrays pueden almacenar cualquier tipo de datos, como Int, String, Class, etc.

¿Cómo declarar un array en Swift?

Puede crear un array vacío especificando el tipo de datos dentro de los corchetes [].

Recuerde que debe incluir el tipo dentro de los corchetes, de lo contrario Swift lo considerará un tipo de datos común y solo podrá almacenar un valor en él.

Ejemplo1:declarar un array vacío

let emptyIntArr: [Int] = []
print(emptyIntArr)

Al ejecutar el programa, la salida es:

[ ]

En el programa anterior, declaramos una constante emptyIntArr que puede almacenar un array de enteros y se inicializa con valores cero.

o

Además, puede definir un array vacío de la siguiente manera:

let emptyIntArr: Array<Int> = Array()
print(emptyIntArr)

o

Dado que Swift es un lenguaje de inferencia de tipo, también puede crear un array sin especificar el tipo de datos directamente, pero debe usar algunos valores para inicializarlo, de modo que el compilador pueda inferir su tipo:

Ejemplo2:declarar un array con ciertos valores

let someIntArr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(someIntArr)

Al ejecutar el programa, la salida es:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

En el programa anterior, declaramos una constante someIntArr que puede almacenar un array de Integer sin especificar explícitamente el tipo. Además, usamosValor 1、2、3、4、5、6、7、8、9 Se inicializó el array.

Ejemplo3:declarar un array que contenga un número específico de valores repetidos

Además, puede especificar la repetición de valores una vez para formar un array en Swift. Esto se realiza utilizando el inicializador del array con repeating y count.

let arrWithRepeatingValues = Array(repeating: "Hola, Mundo", count: 4)
print(arrWithRepeatingValues)

Al ejecutar el programa, la salida es:

["Hola, Mundo", "Hola, Mundo", "Hola, Mundo", "Hola, Mundo"]

En el programa anterior, definimos una constante arrWithRepeatingValues, que almacena una cadena Hola, Mundo del array,Y repite el mismo valor4Esta vez, como se especifica en el ejemplo count.

Nota:En Swift, no se puede crear un array de longitud fija como en otros lenguajes de programación. Un array de longitud fija significa que el array no puede contener más elementos de los que se definieron durante la inicialización.

¿Cómo se almacenan los valores en el array?

Supongamos que tienes una constante que puede almacenar un array de cadenas de caracteres, como se muestra a continuación:

let intArr = [21, 34, 54, 12]

La representación gráfica de cómo se almacenan los valores en el array es como se muestra a continuación:

Todos los arrays que crees comienzan en el índice 0. El primer elemento se almacena en el índice 0, el segundo elemento en el siguiente índice (1),etcétera.

¿Cómo acceder a los elementos del array en Swift?

Puedes usar ElLa sintaxis de subíndice se utiliza para acceder a los elementos del array, es decir, necesitas incluir el índice del valor que deseas acceder después del nombre del array en corchetes.

Supongamos que has declarado un array intArr como se describe anteriormente. Entonces, el primer elemento es intArr[0], el segundo elemento es intArr[1],etcétera.

Ejemplo4: acceder a los elementos del array

let intArr = [21, 34, 54, 12]
print(intArr[0])
print(intArr[1]
print(intArr[2]
print(intArr[3]

Al ejecutar el programa, la salida es:

21
34
54
12

También puedes usar-en el bucle para acceder a los elementos del array. Para más información, consultafor Swift-en el bucle.

¿Cómo modificar en Swift?/¿Cómo agregar elementos al array?

Puedes usar la sintaxis de subíndice y el operador de asignación para modificar un elemento del array, es decir, necesitas incluir el índice del valor que deseas actualizar después del nombre del array en corchetes, seguido del operador de asignación y el nuevo valor.

Ejemplo5: modificar un elemento del array

var intArr = [21, 34, 54, 12]
intArr[0] = 12
intArr[1] = 42
intArr[2] = 45
intArr[3] = 21
print(intArr)

Al ejecutar el programa, la salida es:

[12, 42, 45, 21]

También puedes modificar todos los elementos del array con nuevos valores, como se muestra a continuación:

Ejemplo6: modificar el array en su totalidad

var intArr = [21, 34, 54, 12]
intArr = [1,2,3]
print(intArr)

Al ejecutar el programa, la salida es:

[1, 2, 3]

Pero, para agregar un nuevo elemento a un array existente, no se puede usar la sintaxis de subíndice. Si se hace así, finalmente se producirá un error. No puedes hacer lo siguiente:

Ejemplo7: agregar un nuevo elemento en el array usando la sintaxis de subíndice (no válido)

var intArr = [21, 34, 54, 12]
intArr[4] = 10

Al ejecutar el programa, la salida es:

error fatal: Índice fuera de rango

El programa anterior proporciona un error al asignar un nuevo elemento al array intArr. Esto se debe a que intArr aún no tiene la índice4Asigna memoria adicional y no puede almacenar el valor dado.

Para insertar correctamente un nuevo elemento en el array, utilizamos el método append() del array. Se presentará más adelante cómo se utiliza append()

Funciones y propiedades integradas en el array

1. propiedades isEmpty

Este atributo determina si el array está vacío. Si un array no contiene ningún valor, devuelve true, de lo contrario, devuelve false.

Ejemplo8:isEmpty如何工作?

let intArr = [21, 34, 54, 12]
print(intArr.isEmpty)

Al ejecutar el programa, la salida es:

false

2.first 屬性

此屬性用於訪問數組的第一个元素。

Ejemplo9:first 如何工作?

let intArr = [21, 34, 54, 12]
print(intArr.first)

Al ejecutar el programa, la salida es:

Optional(21)

同樣,您可以使用 last 屬性訪問數組的最后一个元素。

3.append 函數(追加)

append函數用於在數組末尾插入/附加元素。

Ejemplo10:append如何工作?

var intArr = [21, 34, 54, 12]
intArr.append(32)
print(intArr)

Al ejecutar el programa, la salida es:

[21, 34, 54, 12, 32]

您還可以將一個數組的内容附加到另一個數組,如下所示:

var firstArr = [1,2,3,4]
var secondArr = [5,6,7,8]
firstArr.append(contentsOf: secondArr)
print(firstArr)

Al ejecutar el programa, la salida es:

[1, 2, 3, 4, 5, 6, 7, 8]

4.insert 函數(插入)

此函數用於在數組的特定索引處插入/附加元素。

Ejemplo11:insert 如何工作?

var intArr = [21,34,54,12]
intArr.insert(22, at: 1)
print(intArr)

Al ejecutar el programa, la salida es:

[21, 22, 34, 54, 12]

同樣,您也可以使用removeproperty刪除指定索引處的元素。

5.remove() 函數(移除)

此函數從數組中刪除并返回在指定位置指定的值。

Ejemplo12:remove如何工作?

var strArr = ["ab","bc","cd","de"]
let removedVal = strArr.remove(at: 1)
print("removed value is \(removedVal)")
print(strArr)

Al ejecutar el programa, la salida es:

removed value is bc
["ab", "cd", "de"]

同樣,您也可以使用removeFirst刪除數組的第一个元素,removeLast刪除數組的最后一个元素以及removeAll清空數組的功能。

6.reversed() 函數(反轉)

此函數以相反的順序返回數組的元素。

Ejemplo13:reversed()如何工作?

var intArr = [21,22,23,24]
let reversedArr = Array(intArr.reversed())
print(reversedArr)

Al ejecutar el programa, la salida es:

[24, 23, 22, 21]

7.count 屬性(計數)

此屬性返回數組中元素的总数。

Ejemplo14:count 计数

let floatArr = [10.2,21.3,32.0,41.3]
print(floatArr.count)

Al ejecutar el programa, la salida es:

4

注意事項

Al acceder a los elementos del array utilizando la sintaxis de subíndice en Swift, debe asegurarse de que el valor esté en el índice; de lo contrario, se producirá un error en tiempo de ejecución. Vamos a ver un ejemplo:}

let intArr = [21, 34, 54, 12]
print(intArr[-1]

Al ejecutar el programa, la salida es:

error fatal: Índice fuera de rango

En el programa anterior, el índice -1 enNo hay valor. Por lo tanto, cuando intenta acceder al valor en el índice, se producirá un error en tiempo de ejecución.

Para evitar este problema, primero encuentre el índice del elemento que desea eliminar. Luego elimine el elemento en el índice, como se muestra a continuación:

var intArr = [21, 34, 54, 12]
if let index = intArr.index(of: 34) {
    print("encontrado índice")
    let val = intArr.remove(at: index)
    print(val)
}

Al ejecutar el programa, la salida es:

encontrado índice
34