Contenido del curso

Estructuras de Datos y Funciones

Arreglos en Go: fijos e inferidos

Resumen

Trabajar con datos en Go pasa, casi siempre, por entender los arreglos. Aquí aprendes a declararlos, llenarlos, medir su longitud y dejar que Go calcule el tamaño por ti, todo con ejemplos prácticos para quienes empiezan en programación con Go.

¿Cómo se declara un arreglo básico en Go?

La forma más tradicional usa la palabra clave var, seguida del nombre, el número de casillas entre corchetes y el tipo de dato. Por ejemplo, var arreglo [5]int crea un arreglo de cinco enteros [0:30].

Al imprimirlo con fmt.Println("arreglo completo:", arreglo), verás cinco ceros. Esto pasa porque Go inicializa cada casilla con el valor por defecto del tipo declarado, en este caso int.

¿Por qué un arreglo nuevo en Go aparece lleno de ceros? Porque Go asigna un valor por defecto a cada casilla según el tipo. Para enteros es 0, para strings es "" y para booleanos es false.

¿Cómo asigno un valor a una posición específica?

Los arreglos en Go son indexados desde cero. Si escribes arreglo[4] = 100, estás modificando la quinta casilla, no la cuarta [1:30].

Para leer ese valor, usas la misma sintaxis: fmt.Println("elemento en la posición cuatro:", arreglo[4]). El resultado será 100, ubicado en el último espacio disponible del arreglo.

¿Cómo obtengo el tamaño de un arreglo?

Go incluye la función len(), abreviatura de length, que devuelve el número de casillas declaradas. Si escribes fmt.Println("tamaño del arreglo:", len(arreglo)), obtienes 5 [2:20].

Este número siempre coincide con el valor que pusiste entre corchetes al declarar el arreglo, sin importar cuántas casillas hayas llenado realmente.

¿Cuál es la forma idiomática de crear un arreglo en Go?

Go ofrece una sintaxis más compacta usando el operador :=, que combina declaración e inicialización en una sola línea. Así evitas escribir var y el tipo explícito.

go lista := [5]int{1, 2, 3, 4, 5}

Esta lista funciona igual que la versión con var, pero ya viene con valores cargados en cada casilla. Es la forma preferida cuando ya sabes qué datos quieres almacenar desde el inicio.

¿Qué hace el operador de tres puntos en un arreglo de Go?

Cuando no quieres fijar manualmente el tamaño, Go te permite delegarle esa tarea con [...]. Los tres puntos le indican al compilador que cuente los elementos por ti [4:00].

go lista2 := [...]int{1, 2, 3, 4, 5, 6}

En este caso, len(lista2) devuelve 6, porque Go infiere el tamaño según los valores que escribiste. A esto se le puede llamar arreglo inferido, ya que el lenguaje deduce la longitud automáticamente.

¿Cuándo conviene usar [...] en lugar de un número fijo? Cuando ya conoces todos los valores al declarar el arreglo y prefieres que Go calcule el tamaño. Si necesitas reservar espacio vacío para llenarlo después, mejor usa un número específico.

¿Qué diferencia hay entre un arreglo fijo y uno inferido?

Ambos producen arreglos de tamaño inmutable, pero cambian en quién decide ese tamaño:

  • Arreglo fijo: tú declaras el número exacto de casillas, por ejemplo [5]int.
  • Arreglo inferido: Go cuenta los elementos entre llaves y asigna el tamaño con [...]int.
  • Comportamiento: una vez creado, ninguno cambia su longitud durante la ejecución.

La elección depende del caso. Si vas a llenar el arreglo poco a poco, fija el tamaño. Si ya tienes los datos listos, deja que Go infiera.

¿Qué puedes hacer después de dominar los arreglos?

Los arreglos son la base para estructuras más complejas y para combinarlos con estructuras de control. Una vez los manejas, puedes recorrerlos con un ciclo for o evaluar sus elementos con un switch.

Mezcla arreglos fijos, inferidos y la función len() para construir programas más útiles. Por ejemplo, puedes recorrer una lista2 con for i := 0; i < len(lista2); i++ y aplicar lógica sobre cada elemento.

¿Qué tipo de arreglo prefieres usar tú: el fijo o el inferido? Cuéntame en los comentarios cómo los estás aplicando en tus primeros programas en Go.