Sobes.tech
Junior — Middle

¿Qué acciones son permitidas al trabajar con un slice en Go si no ha sido inicializado explícitamente?

sobes.tech AI

Respuesta de la IA

En Go, si un slice no ha sido inicializado explícitamente (es decir, tiene el valor nil), se pueden realizar las siguientes acciones:

  • Verificar si es nil (por ejemplo, if slice == nil), lo cual es útil para determinar si el slice ha sido inicializado.
  • Obtener la longitud y capacidad usando len(slice) y cap(slice). Para un slice nil, la longitud y capacidad son 0.
  • Usar el operador append para agregar elementos. Esto creará automáticamente un nuevo slice con memoria asignada si el slice original es nil.

Sin embargo, no se puede acceder a los elementos del slice por índice si es nil o está vacío, ya que esto causará un pánico.

Ejemplo:

var s []int // s == nil
fmt.Println(s == nil) // true
fmt.Println(len(s))   // 0
s = append(s, 1)      // ahora s está inicializado y contiene [1]