En este módulo, aprenderemos sobre dos estructuras de datos fundamentales en Go: los arreglos y los slices. Estas estructuras son esenciales para manejar colecciones de datos de manera eficiente y flexible.
Arreglos
Definición y Declaración
Un arreglo es una colección de elementos del mismo tipo, con un tamaño fijo que se define en el momento de su declaración.
Inicialización
Puedes inicializar un arreglo en el momento de su declaración:
También puedes dejar que el compilador determine el tamaño del arreglo:
Acceso a Elementos
Puedes acceder a los elementos de un arreglo usando índices, que comienzan en 0:
Iteración
Puedes iterar sobre los elementos de un arreglo usando un bucle for
:
O usando un bucle range
:
Ejercicio Práctico
Ejercicio 1: Declara un arreglo de 5 enteros, inicialízalo con valores del 1 al 5, y luego imprime cada elemento.
package main import "fmt" func main() { var arr = [5]int{1, 2, 3, 4, 5} for i := 0; i < len(arr); i++ { fmt.Println(arr[i]) } }
Slices
Definición y Declaración
Un slice es una vista flexible y dinámica de un segmento de un arreglo. A diferencia de los arreglos, los slices no tienen un tamaño fijo.
Inicialización
Puedes inicializar un slice usando la función make
:
O puedes crear un slice a partir de un arreglo:
Acceso a Elementos
Al igual que los arreglos, puedes acceder a los elementos de un slice usando índices:
fmt.Println(s[0]) // Imprime el primer elemento del slice s[1] = 10 // Cambia el segundo elemento del slice a 10
Iteración
Puedes iterar sobre los elementos de un slice de la misma manera que con los arreglos:
for i := 0; i < len(s); i++ { fmt.Println(s[i]) } for index, value := range s { fmt.Println(index, value) }
Capacidad y Longitud
Los slices tienen una longitud y una capacidad. La longitud es el número de elementos en el slice, mientras que la capacidad es el número de elementos en el arreglo subyacente, comenzando desde el primer elemento del slice.
fmt.Println(len(s)) // Imprime la longitud del slice fmt.Println(cap(s)) // Imprime la capacidad del slice
Añadir Elementos
Puedes añadir elementos a un slice usando la función append
:
Ejercicio Práctico
Ejercicio 2: Crea un slice a partir de un arreglo, añade algunos elementos al slice y luego imprime todos los elementos del slice.
package main import "fmt" func main() { arr := [5]int{1, 2, 3, 4, 5} s := arr[1:4] // Crea un slice que contiene los elementos 2, 3 y 4 s = append(s, 6, 7) // Añade los elementos 6 y 7 al slice for _, value := range s { fmt.Println(value) } }
Errores Comunes y Consejos
- Índices Fuera de Rango: Asegúrate de no acceder a índices fuera del rango del slice o arreglo, ya que esto causará un pánico en tiempo de ejecución.
- Capacidad del Slice: Cuando uses
append
, ten en cuenta que si la capacidad del slice no es suficiente, se creará un nuevo arreglo subyacente, lo que puede afectar el rendimiento.
Conclusión
En esta sección, hemos aprendido sobre los arreglos y slices en Go, cómo declararlos, inicializarlos, acceder a sus elementos y cómo iterar sobre ellos. También hemos visto cómo los slices proporcionan una vista flexible y dinámica de los arreglos. Con estos conocimientos, estás listo para manejar colecciones de datos de manera eficiente en tus programas Go.
En el próximo módulo, exploraremos los mapas, otra estructura de datos fundamental en Go.
Curso de Programación en Go
Módulo 1: Introducción a Go
- Introducción a Go
- Configuración del Entorno de Go
- Tu Primer Programa en Go
- Sintaxis y Estructura Básica
Módulo 2: Conceptos Básicos
Módulo 3: Estructuras de Datos Avanzadas
Módulo 4: Manejo de Errores
Módulo 5: Concurrencia
Módulo 6: Temas Avanzados
Módulo 7: Desarrollo Web con Go
Módulo 8: Trabajando con Bases de Datos
Módulo 9: Despliegue y Mantenimiento
- Construcción y Despliegue de Aplicaciones Go
- Registro de Logs
- Monitoreo y Optimización de Rendimiento
- Mejores Prácticas de Seguridad