Los arrays en Go son estructuras para manejar o guardar listados de datos, en go los arrays son inmutables es decir una vez creado no se puede modificar el tamaño.
Los arrays en Go funcionan muy similar a los arrays en C ya que estos tienen que ser del tipo que fueron especificados / inicializados.
Es decir un array de enteros solo admite enteros y un array de cadenas o string solo admite cadenas o strings.
Definir un Array en Go
Para definir el array hay 2 formas.
La primera se crea el array con su tipo y tamaño.
var myarray [5]int
El array de tipo entero en este caso tiene 5 espacios, para acceder a los espacios o valores del array se usan corchetes[] , el primer valor/indice siempre es 0 y el ultimo valor o indice sera N-1, si en este caso N=5, entonces el ultimo indice seria N-1=5-1 = 4.
Cuando declaramos un array de esta forma, todos los valores se asignan en 0 si son enteros.
Otra forma de inicializar el array es declarando y asignando valores en la misma linea.
myarray := [5]int{1, 2, 3, 4, 5}
Con este forma es mas rapido si ya conocemos los valores que va a tener cada array.
La forma clasica de asignar los valores es usando los corchetenes y su indice de la siguiente manera.
myarray[0] = 10 myarray[1] = 100 myarray[2] = 1000 myarray[3] = 10000 myarray[4] = 100000
Y con esto ya tenemos definido y asignado los valores de nuestro array.
Recorrer un array en Go
Una vez que ya rellenamos nuestro array de datos lo mas comun seria recorrer tenemos 2 formas, podemos inventar otra forma, pero vamos con las 2 basicas.
Usando un for clasico y usamos la funcion len() para calcular el tamaño de nuestro array, si el tamaño del array ya lo conocemos pues en lugar de len(myarray) ponemos el valor del tamaño delñ array.
for i := 0; i < len(myarray); i++ { fmt.Println(myarray[i]) // imprimimor el valor }
La segunda forma se utiliza for y la funcion range para recorrer el array.
En esta forma no es necesario definir variable de inicio, ni condicion , ni incrementar , del for.
for i := range myarray { fmt.Println(i, myarray[i]) // imprimimos el indice y el valor }
El resultado seria aproximadamente el siguiente.
C:\Users\evilnapsis\scripts>go run arrays1.go
Arrays en GO
Imprimir con For clasico
10
100
1000
10000
100000
Otra forma de For
0 10
1 100
2 1000
3 10000
4 100000
C:\Users\evilnapsis\scripts>