Sobes.tech
Junior — Middle

¿Qué sucederá con la longitud y la capacidad del slice si se añaden 10 elementos cuando inicialmente está vacío?

sobes.tech AI

Respuesta de la IA

Si tienes un slice vacío en Go (longitud y capacidad iguales a 0), y añades 10 elementos con la función append, entonces:

  • La longitud del slice será 10, que es la cantidad de elementos que añadiste.
  • La capacidad del slice se incrementará automáticamente, generalmente con un margen, para evitar reasignaciones frecuentes de memoria. La capacidad exacta depende de la implementación, pero a menudo será 16 o más, para acomodar nuevos elementos y tener margen para futuras adiciones.

Ejemplo:

var s []int // slice vacío
s = append(s, make([]int, 10)...) // añadimos 10 elementos
fmt.Println(len(s)) // 10
fmt.Println(cap(s)) // >=10, usualmente 16 o 20

De esta forma, la capacidad aumenta dinámicamente para gestionar eficientemente la memoria a medida que crece el slice.