Siempre vamos a necesitar recorrer arreglos o listas en Go. Al menos yo conozco 2 maneras de hacerlo y hoy vengo a explicarlas.
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.
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:
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í:
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:
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:
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:
Sólo recorrimos arreglos de números, pero también podemos recorrer arreglos de cualquier tipo, sobre todo utilizando range.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.