驴Qu茅 son los slices en programaci贸n?
Si bien los arreglos son una parte importante del lenguaje, es mas com煤n el uso de slices. Un slice en cierta forma es un segmento de un arreglo.
El uso de arreglos tiene ciertas limitaciones, la mas importante es tal vez que una vez que se alcanza la capacidad del arreglo, no es posible agregar mas valores a este. En ese sentido los slices son mas flexibles. Es posible agregar, remover y copiar elementos de un slice a otro.
Para crear un slice hay que definir, su nombre, tipo y capacidad inicial. A partir de aqu铆 podemos agregar valores.
Ejemplo del uso de slices en Go
package main
import "fmt"
func main() {
var marcasDeCoches = make([]string, 2)
marcasDeCoches[0] = "Mazda"
marcasDeCoches[1] = "Toyota"
fmt.Println(marcasDeCoches) // [Mazda Toyota]
}
驴Qu茅 sucede si agregamos un valor mas a un slice en Go?
Hasta este momento no hemos visto mayor, problema, pero si intentamos agregar otro nuevo elemento se producir谩 una sobrecarga del slice.
En lugar de agregar otro elemento por su 铆ndice de referencia podemos usar la instrucci贸n append que y asociarla a una nueva variable. Esto crear谩 un nuevo slice con mayor capacidad sobre esta nueva variable.
Ejemplo de como agregar un nuevo valor a un slice en Go
package main
import "fmt"
func main() {
var marcasDeCoches = make([]string, 2)
marcasDeCoches[0] = "Mazda"
marcasDeCoches[1] = "Toyota"
fmt.Println(marcasDeCoches) // [Mazda Toyota]
nuevoSlice := append(marcasDeCoches, "Nissan")
fmt.Println(nuevoSlice) // [Mazda Toyota Nissan]
}
驴C贸mo utilizar la funci贸n “append” para agregar mas valores a un slice en Go?
La funci贸n append es una funci贸n variadica, es decir que se le pueden enviar N argumentos al mismo tiempo.
nuevoSlice := append(marcasDeCoches, "Nissan", "Mitsubishi", "Suzuki", "Mazda")