Sobes.tech
Junior — Middle

¿Qué sucede si se crea un slice con un valor nulo y qué operaciones son permitidas con él?

sobes.tech AI

Respuesta de la IA

En Go, una slice con valor cero es una slice nil. No apunta a ninguna matriz y tiene una longitud y capacidad iguales a cero.

Operaciones permitidas con tal slice:

  • Obtener la longitud y capacidad (len(slice) == 0, cap(slice) == 0)
  • Iterar sobre la slice (el ciclo simplemente no se ejecutará)
  • Agregar elementos mediante append, lo que creará una nueva slice con memoria asignada

Ejemplo:

var s []int // slice nil
fmt.Println(s == nil) // true
fmt.Println(len(s))   // 0
s = append(s, 1)      // ahora s no es nil, contiene un elemento

No se puede acceder a los elementos por índice, ya que la slice está vacía y esto causará un pánico.