AnyCompiler

Arrays y Slices

Un array tiene un tamaño fijo que es parte de su tipo — [3]int y [5]int son tipos completamente distintos. Los arrays existen en Go, pero se usan mucho menos que los slices en el código cotidiano.

package main

import "fmt"

func main() {
	var grid [3]int
	grid[0] = 10
	grid[1] = 20
	grid[2] = 30
	fmt.Println(grid, len(grid))
}
Output
[10 20 30] 3

Slices: la colección preferida de Go

Un slice es una vista flexible y creciente sobre un array subyacente — append() añade un elemento (haciendo crecer automáticamente el almacenamiento subyacente si es necesario), y hacer slicing con [start:end] te da una vista sobre un rango sin copiar los datos.

package main

import "fmt"

func main() {
	fruits := []string{"apple", "banana", "cherry"}
	fruits = append(fruits, "date")
	fmt.Println(fruits)

	firstTwo := fruits[0:2]
	fmt.Println(firstTwo)
}
Output
[apple banana cherry date]
[apple banana]

Siguiente: maps — la colección clave-valor integrada de Go, y el idiom comma-ok para comprobar si existe una clave.

Practice exercise

Crea un slice numbers := []int{4, 8, 15, 16}, usa append para agregar 23, luego imprime el slice.