Capacidad máxima
Lección 8 de 21 del curso Slices y Maps en GoLang de Coddy.
En la última lección, hablamos sobre la capacidad y aprendimos que cuando realizamos un slicing, la capacidad se determina desde la posición inicial hasta el final del slice. Sin embargo, podemos usar el operador o expresión de slice para controlar o limitar la capacidad. Veamos un ejemplo:
Sabemos que la sintaxis del operador de slice es así: <strong>[start:stop]</strong>, pero podemos añadir una tercera opción a este operador para que sea así: <strong>[start:stop:capacity]</strong>. La tercera opción nos permite establecer la capacidad máxima del slice.
Por lo tanto, usando una expresión de slice completa, puedes realizar un slice de un slice y, al mismo tiempo, limitar la capacidad del slice devuelto por esta expresión de slice.
Supongamos que tenemos un slice como este:
numbers := []int{1, 2, 3, 4, 5, 6}Vamos a hacer un slice de esto para obtener 3 elementos:
numbers := []int{1, 2, 3, 4, 5, 6}
numSlice := numbers[1:4]Podemos representar esto de la siguiente manera:
Así que aquí, obtenemos 3 elementos y una capacidad de 5, tal como demuestra esta imagen.
Ahora, si usamos la capacidad en el operador de slice y la establecemos, por ejemplo, en 3:
numbers := []int{1, 2, 3, 4, 5, 6}
numSlice := numbers[1:4:4]Piensa en la capacidad exactamente como la posición del elemento aquí; la establecemos en 4. Pero ten en cuenta que la posición de parada (stopping) no puede ser mayor que la posición de capacidad.
Desafío
FácilEn el código dado, definimos un slice llamado coddy con 6 elementos.
- Realiza una operación de slicing para extraer los elementos "Tech" y "Learn Golang" del slice coddy mientras te aseguras de que la capacidad sea 4.
Pruébalo tú mismo
package main
import (
"fmt"
)
func main() {
// Un slice de 6 elementos
coddy := []string{"Coddy","Tech","Learn Golang","Learn JavaScript","C++","C#"}
// Realiza el slicing aquí
// Imprime los elementos en la pantalla
fmt.Println("Elements:" ?)
// Imprime la capacidad
fmt.Println("Capacity:" ?)
}
Todas las lecciones de Slices y Maps en GoLang
1Introducción
Introducción