Recorrer arreglos en Go

Introducción

Siempre vamos a necesitar recorrer arreglos o listas en Go. Al menos yo conozco 2 maneras de hacerlo y hoy vengo a explicarlas.

Recorrer un arreglo con una variable y un ciclo for

La forma más tradicional y antigua es declarar una variable en 0. Luego, hacer un ciclo for e ir incrementando esa variable de uno en uno hasta llegar a la longitud del arreglo.

Si queremos recorrer un arreglo o vector (por ejemplo, de números enteros) e imprimir sus valores el código de ejemplo sería el siguiente:

package main

import "fmt"

func main() {
	numeros := [...]int {18, 28, 21, 96, 97}

	for i := len(numeros) - 1; i >= 0; i-- {
		fmt.Println(numeros[i])
	}
}

Eso lo recorre de arriba hacia abajo, para “optimizar” el ciclo y no llamar muchas veces a len. Al ejecutar, tenemos:

Pero si a queremos recorrerlo de abajo hacia arriba tenemos dos opciones… almacenar la longitud en una variable, o llamar a la función en cada iteración.

Almacenar longitud para recorrer de abajo hacia arriba

El código quedaría así:

package main

import "fmt"

func main() {
	numeros := [...]int {18, 28, 21, 96, 97}
	longitud := len(numeros)
	for i := 0; i < longitud; i++ {
		fmt.Println(numeros[i])
	}
}

Y su ejecución sería la siguiente:

Llamar a len en cada iteración

Ahora quedaría así:

package main

import "fmt"

func main() {
	numeros := [...]int {18, 28, 21, 96, 97}
	for i := 0; i < len(numeros); i++ {
		fmt.Println(numeros[i])
	}
}

Y su ejecución sería casi la misma que arriba,  así:

Recorrer un arreglo con range

Este es el método preferido y elegante. Si queremos recorrer un arreglo, utilizamos range. Así, podemos acceder al índice y al valor por separado.

Por ejemplo, para ver el índice y valor de un arreglo usamos esto:

package main

import "fmt"

func main() {
	numeros := [...]int {18, 28, 21, 96, 97}
	for indice, valor := range numeros {
		fmt.Printf("Estamos en el índice %d, y su valor es %d\n", indice, valor)
	}
}

La salida es la siguiente:

Si sólo queremos el índice…

Código de ejemplo:

package main

import "fmt"

func main() {
	numeros := [...]int {18, 28, 21, 96, 97}
	for indice, _ := range numeros {
		fmt.Printf("Estamos en el índice %d\n", indice)
	}
}

Lo que da como resultado esto:

Y si sólo queremos el valor…

Código fuente de ejemplo:

package main

import "fmt"

func main() {
	numeros := [...]int {18, 28, 21, 96, 97}
	for _, valor := range numeros {
		fmt.Printf("Estamos en el valor %d\n", valor)
	}
}

Para terminar, esta es la salida:

Conclusión y notas

Sólo recorrimos arreglos de números, pero también podemos recorrer arreglos de cualquier tipo, sobre todo utilizando range.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *