Sobes.tech
Junior — Middle

¿Qué consecuencias surgen al usar el método append para un slice declarado sin parámetros iniciales?

sobes.tech AI

Respuesta de la IA

Si una slice en Go se declara sin parámetros iniciales, por ejemplo var s []int, inicialmente es igual a nil y no apunta a un array asignado. Al usar la función append, Go automáticamente asignará un nuevo array y añadirá los elementos, devolviendo una nueva slice con la capacidad necesaria.

Esto significa que append funciona de manera segura con slices nil, y puedes escribir:

var s []int // slice nil
s = append(s, 1, 2, 3) // ahora s apunta a un nuevo array con los elementos

Consecuencias:

  • No es necesario inicializar la slice antes de usar append.
  • La primera vez que se llama a append, se asigna memoria.
  • Si la slice es nil, entonces len(s) == 0 y cap(s) == 0.

Por lo tanto, usar append con slices nil es una práctica estándar en Go que simplifica el trabajo con colecciones dinámicas.