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.
Desafio
FácilNo 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
1Introdução
Introdução