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.
En este post te quiero compartir un código de C++ para listar y cancelar trabajos…
Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…
Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…
Esta semana estuve recreando la API del plugin para impresoras térmicas en Android (HTTP a…
Hoy te enseñaré a extraer la cadena base64 de una clave PEM usando una función…
Encender un foco con un Bot de Telegram es posible usando una tarjeta como la…
Esta web usa cookies.