Menu
Coddy logo textTech

Capacidade Máxima

Lição 8 de 21 do curso Slices e Maps em GoLang da Coddy.

Na última lição, falamos sobre capacidade e aprendemos que, quando realizamos o fatiamento (slicing), a capacidade é determinada da posição inicial até o final da fatia. No entanto, podemos usar o operador ou expressão de fatia para controlar ou limitar a capacidade. Vamos ver um exemplo:

Sabemos que a sintaxe do operador de fatia é assim: <strong>[start:stop]</strong>, mas podemos adicionar uma terceira opção a este operador para que fique assim: <strong>[start:stop:capacity]</strong>. A terceira opção nos permite definir a capacidade máxima da fatia.

Portanto, usando uma expressão de fatia completa, você pode fatiar uma fatia e, ao mesmo tempo, limitar a capacidade da fatia retornada por essa expressão de fatia.

Suponha que tenhamos uma fatia como esta:

numbers := []int{1, 2, 3, 4, 5, 6}

Vamos fatiar isso para obter 3 elementos:

numbers := []int{1, 2, 3, 4, 5, 6}
numSlice := numbers[1:4]

Podemos representar isso desta forma:


Então aqui, obtemos 3 elementos e uma capacidade de 5, exatamente como esta imagem demonstra.

Agora, se usarmos a capacidade no operador de fatia e a definirmos, por exemplo, como 3:

numbers := []int{1, 2, 3, 4, 5, 6}
numSlice := numbers[1:4:4]

Pense na capacidade exatamente como a posição do elemento aqui; nós a definimos como 4. Mas observe que a posição de parada (stopping) não pode ser maior que a posição da capacidade.

challenge icon

Desafio

Fácil

No código fornecido, definimos um slice chamado coddy com 6 elementos.

  • Realize uma operação de fatiamento (slicing) para extrair os elementos "Tech" e "Learn Golang" do slice coddy, garantindo que a capacidade seja 4.

Experimente você mesmo

package main

import (
	"fmt"
)

func main() {
    // Um Slice de 6 elementos 
	coddy := []string{"Coddy","Tech","Learn Golang","Learn JavaScript","C++","C#"}
	// Faça o Slicing aqui 
	 
	// Imprima os elementos na tela
	fmt.Println("Elements:" ?)
	// Imprima a capacidade (Capacity)
	fmt.Println("Capacity:" ?)

}

Todas as lições de Slices e Maps em GoLang