Junior — Middle
¿Cómo crear e inicializar correctamente las slices en Go?
sobes.tech AI
Respuesta de la IA
En Go, los slices son estructuras de datos dinámicas que representan una referencia a un array con una longitud y capacidad especificadas.
Se pueden crear e inicializar slices de varias maneras:
- Declaración de un slice sin inicialización (slice nulo):
var s []int // slice nulo, longitud y capacidad 0
- Inicialización de un slice usando un literal:
s := []int{1, 2, 3} // slice de longitud 3
- Creación de un slice usando la función make:
s := make([]int, 5) // slice de longitud 5, lleno de ceros
s2 := make([]int, 3, 10) // longitud 3, capacidad 10
La función make asigna un array en el backend y devuelve un slice que apunta a él.
- Creación de un slice a partir de un array:
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:4] // slice de elementos con índices 1,2,3
Es importante recordar que los slices son referencias a arrays, por lo que modificar los elementos del slice también modifica el array original.
Ejemplo de uso:
package main
import "fmt"
func main() {
s := make([]int, 3, 5)
fmt.Println(s) // [0 0 0]
fmt.Println(len(s)) // 3
fmt.Println(cap(s)) // 5
s = append(s, 4, 5)
fmt.Println(s) // [0 0 0 4 5]
fmt.Println(len(s)) // 5
fmt.Println(cap(s)) // 5
}
Este enfoque permite trabajar de manera eficiente con arreglos dinámicos en Go.