Arrays en Swift: declara, accede e inserta

Resumen

Trabajar con arrays en Swift es indispensable cuando necesitas guardar colecciones de datos como una lista de frutas, productos o usuarios. Aquí aprenderás a declararlos, acceder a sus elementos y agregar nuevos valores con seguridad, usando un ejemplo práctico de una app de venta de frutas.

¿Cómo se declara un array en Swift?

En Swift, un arreglo se declara como cualquier variable, pero usando corchetes para delimitar los elementos. Lo importante es definir el tipo de dato que contendrá la lista, sobre todo si arranca vacía.

Si quieres una lista vacía, el compilador te exige indicar el tipo explícitamente. Por ejemplo, una lista de cadenas se declara así:

swift var frutas: [String] = []

Y si ya conoces los valores iniciales, puedes inicializarla directamente con sus elementos separados por comas [0:54]:

swift var frutas: [String] = ["manzana", "piña", "pera"]

Existe otra forma equivalente para crear una lista vacía usando el constructor del tipo:

swift var frutas2 = String

¿Por qué los arrays se declaran como var y no como let? Porque al usar let el arreglo se vuelve inmutable. No podrías agregar, quitar ni modificar elementos. Si planeas manipular la lista, declárala siempre con var [1:36].

¿Cómo accedo a un elemento por su posición?

Para obtener un elemento usas su índice entre corchetes. Y aquí viene un detalle clave: en programación, los índices empiezan en cero, no en uno.

En una lista con manzana, piña y pera, las posiciones quedan así:

  • manzana está en la posición 0.
  • piña está en la posición 1.
  • pera está en la posición 2.

Entonces, para obtener la primera fruta escribes [2:24]:

swift let primera = frutas[0]

¿Qué pasa si la lista está vacía?

Si intentas acceder a una posición que no existe, Swift lanza el error index out of range y detiene la ejecución [3:14]. Por eso necesitas validar antes de leer cualquier índice.

Una forma es revisar la cantidad de elementos con la propiedad count, que devuelve cuántos valores tiene el array:

swift let conteoDeFrutas = frutas.count

Con ese dato puedes condicionar el acceso:

swift if conteoDeFrutas > 0 { let primera = frutas[0] print(primera) }

¿Hay una forma más limpia de validar?

Sí, usando la propiedad isEmpty, que retorna true cuando el array no tiene elementos. Combinada con el operador de negación !, queda muy expresiva [5:33]:

swift if !frutas.isEmpty { let primera = frutas[0] print(primera) }

¿Qué hace isEmpty en un array de Swift? Es una propiedad booleana que devuelve true si la lista está vacía y false si tiene al menos un elemento. Es más legible que comparar count > 0.

¿Cómo agrego nuevos elementos a un array?

Swift ofrece dos métodos principales para insertar valores: append e insert. Cada uno responde a una intención distinta.

Agregar al final con append

El método append añade un elemento siempre al final del arreglo. Es perfecto cuando el orden de llegada no importa o quieres respetarlo [6:51]:

swift frutas.append("fresa")

Después de esa línea, la lista pasa de [manzana, piña, pera] a [manzana, piña, pera, fresa].

Insertar en una posición específica con insert

Cuando necesitas controlar dónde queda el nuevo elemento, usa insert. Recibe el valor y un parámetro at con el índice deseado [7:50]:

swift frutas.insert("uva", at: 1)

Con esa instrucción, la uva queda en la segunda posición y el resto de elementos se desplaza. La lista final sería [manzana, uva, piña, pera, fresa].

¿Cuál es la diferencia entre append e insert en Swift? append agrega siempre al final del array. insert te permite elegir la posición exacta usando el parámetro at, desplazando los demás elementos hacia la derecha.

Reto: ¿cómo obtienes el último elemento sin saber el tamaño?

En la clase queda una pregunta abierta: ¿cómo accederías al último elemento de la lista sin importar cuántos elementos tenga? Piensa en propiedades como count o métodos nativos del lenguaje y déjame tu solución en los comentarios.