Sobes.tech
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