驴Qu茅 son los slices en Go?
Como ya mencionamos, un arreglo es una colecci贸n de valores del mismo tipo que tiene una longitud fija y no puede tener un m茅todo para cambiar su tama帽o.
Por otro lado un slice es una abstracci贸n de un arreglo, es decir que utiliza un arreglo tras bambalinas para funcionar, pero provee ciertas funciones adicionales.
驴Qu茅 operaciones se pueden hacer con los slices en Go?
| Operaci贸n | Descripci贸n | | append | Agrega un nuevo elemento al slice. | | len | Obtiene el tama帽o de un slice. | | cap | Retorna la capacidad del arreglo en uso por parte del slice. | | copy | Realiza una copia de todos el contenido del slice sobre otro. |
驴C贸mo extraer una parte de un slice?
Para extraer una parte de un slice se utiliza la sint谩xis [inicio:fin], en donde inicio es 铆ndice a partir del cual se empiezan a obtener elementos para extraer y l铆mite de donde extraer. Este comportamiento del l铆mite es non-inclusive, es decir que si especificamos [0:9] se extraer谩n los valores del 0 al 8.
Ejemplo de como insertar elementos en un slice utilizando un loop for
package main
import "fmt"
func main() {
// creamos un arreglo vacio llamado miSlice
miSlice := []int{}
// agregamos 100 valores al arreglo usando la funcion append
for i := 0; i < 100; i += 1 {
miSlice = append(miSlice, i+1)
}
// imprimimos el contenido del arreglo
fmt.Printf("%+v", miSlice)
}
Salida.
[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100]