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)ycap(slice). Para un slicenil, la longitud y capacidad son 0. - Usar el operador
appendpara agregar elementos. Esto creará automáticamente un nuevo slice con memoria asignada si el slice original esnil.
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]