Senior
¿Qué es un slice y en qué se diferencia de un array?
sobes.tech AI
Respuesta de la IA
En Go, un array es una estructura de tamaño fijo que contiene elementos del mismo tipo. El tamaño del array se establece en la declaración y no puede cambiar durante la ejecución del programa.
Slice es una porción dinámica y ajustable en tamaño del array. Es una estructura que contiene un puntero al array, la longitud y la capacidad. Los slices permiten trabajar con subconjuntos del array y expandirse automáticamente cuando es necesario.
Diferencias principales:
- Tamaño: el array tiene un tamaño fijo, el slice es dinámico.
- Paso: los arrays se pasan por valor (se copian), los slices por referencia (puntero al array).
- Flexibilidad: el slice se puede ampliar usando la función
append, el array no.
Ejemplo:
var arr [3]int = [3]int{1, 2, 3} // array de tamaño fijo
var s []int = arr[0:2] // slice que referencia una parte del array
s = append(s, 4) // el slice se expande, y si es necesario, se crea un nuevo array