Menu
Coddy logo textTech

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.

challenge icon

Desafío

Fácil

En 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