Go – Arrays
Introducción
Una array, arreglo o matriz, es una colección de elementos del mismo tipo con un tamaño pre-fijado, aunque no siempre tiene que ser así tal y como veremos más adelante.
Veamos sus características y cómo funcionan en Go.
Características
En Go, un array es un tipo por referencia.
Los elementos que forman parte de un array, son almacenados de forma secuencial.
Una matriz no puede ser re-dimensionada de forma directa.
Para obtener un elemento de un array, lo haremos a través de su índice.
Los índices de un array en Go empiezan por 0, así que 0 sería su primer elemento, 1 el segundo, etc.
Por ejemplo:
En este ejemplo, el array tendrá 4 elementos, y para obtener el valor Mary, deberíamos acceder al índice 1 del array.
Declaración de un array
Para declarar un array en Go, lo podemos hacer de la siguiente forma:
var <arrayname>[<length>] <type>
Un ejemplo de declaración de un array sería:
var people[4] string
Cabe indicar aquí, que existe una inicialización de sus elementos por defecto, así pues, todos los elementos de un array son inicializados con valores 0 en un array numérico, y con cadenas vacías en el caso de string, etc.
Inicializando arrays
Pero cuando trabajamos con arrays, lo más habitual es inicializar el mismo a la vez que lo declaramos.
El comando general de inicialización de un array sería de la forma:
var <arrayname>[<length>] <type> { <values>}
Por ejemplo:
var people = [4]string{"John", "Mary", "Rose", "Peter"}
Observa que cada valor está separado por comas ,
Y evidentemente, una declaración compatible con la anterior sería esta otra:
people := [4] string {"John", "Mary", "Rose", "Peter"}
Ahora bien, aunque he comentado que un array puede tener un tamaño fijo pre-fijado de elementos, la verdad es que es posible también que queramos trabajar e inicializar un array al que no le hayamos indicado un tamaño fijo.
Esto nos permitirá añadir registros a nuestro array.
La declaración tipo en este caso sería de la forma:
var <arrayname>[] <type> { <values> }
O bien de la forma:
<arrayname> := [] <type> { <values> }
Por ejemplo:
people := [] string {"John", "Mary", "Rose", "Peter"}
En este caso, si queremos añadir un elemento al array, lo haremos con el método append.
people = append(people, "George")
Operando con arrays
No obstante, cuando trabajamos con arrays, es muy habitual tener la necesidad de operar con ellos.
Veremos a continuación las operaciones más comunes.
Si queremos conocer la longitud de un array, utilizaremos la función len.
len(<arrayname>)
Por ejemplo:
len(people)
Si lo que queremos, es conocer la capacidad de un array, utilizaremos la función cap.
cap(<arrayname>)
Por ejemplo:
cap(people)
La capacidad variará de acuerdo a la redimensión del array si éste lo permite, y agregamos valores con append. Recuerda que un array de tamaño fijo, no permite agregar elementos con append. Si lo hacemos, obtendremos un error.
Ahora bien, si lo que queremos es mostrar el contenido (elementos o valores) de un array de una sola vez, bastará con hacerlo de esta forma:
people
Espero que todo esto te ayude a comprender mejor cómo podemos trabajar con arrays en Go, al menos de una forma básica y general.
Podrás encontrar el ejemplo completo de lo hablado en esta entrada, en mi repositorio de GitHub.
Happy Coding!