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.