Comprimento vs Capacidade de Slices
Parte da seção Fundamentos do Journey de GO da Coddy — lição 77 de 109.
Em Go, length e capacity são duas propriedades diferentes de slices.
Crie um slice com make:
numbers := make([]int, 3, 5)
fmt.Println("Length:", len(numbers))
fmt.Println("Capacity:", cap(numbers))Isso exibe:
Length: 3
Capacity: 5Length é o número de elementos atualmente no slice. Capacity é o número máximo de elementos que o slice pode conter antes de precisar crescer.
Desafio
Iniciantelen() e cap() de um slice. A função len() retorna o número atual de elementos em um slice, enquanto cap() retorna a capacidade (número máximo de elementos antes que a realocação seja necessária).Sua tarefa é completar o código para imprimir tanto o comprimento quanto a capacidade do slice fornecido.
Folha de consulta
Em Go, os slices possuem duas propriedades: comprimento (length) e capacidade (capacity).
Comprimento é o número de elementos atualmente no slice. Capacidade é o número máximo de elementos que o slice pode conter antes de precisar crescer.
Use len() para obter o comprimento e cap() para obter a capacidade:
numbers := make([]int, 3, 5)
fmt.Println("Length:", len(numbers)) // Comprimento: 3
fmt.Println("Capacity:", cap(numbers)) // Capacidade: 5Experimente você mesmo
package main
import "fmt"
func main() {
// Um slice com 3 elementos, mas capacidade de 5
numbers := make([]int, 3, 5)
// TODO: Imprima o comprimento do slice usando len()
fmt.Println("Length:", ?)
// TODO: Imprima a capacidade do slice usando cap()
fmt.Println("Capacity:", ?)
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores de Comparação e Lógicos
Operadores de Comparação - Parte 1Operadores de Comparação - Parte 2Operador Lógico ANDOperador Lógico OROperador Lógico NOTFundamentos de Precedência de OperadoresRecapitulação - Fazendo Comparações7Fluxo de Controle: Loops
O Loop `for` ExplicadoLoop For - BásicoLoop For - Apenas CondiçãoA Palavra-chave `break`A Palavra-chave `continue`Loops AninhadosRecapitulação - Repetindo Ações2Variáveis e Tipos de Dados Básicos
O que é uma variávelInferência de Tipo com `:=`Inteiros (int)Números de Ponto FlutuanteBooleanosStringsValores ZeroConstantesConvenções de NomenclaturaRecapitulação - Variáveis e Tipos5Entrada/Saída Básica
Saída FormatadaVerbos de FormataçãoImprimindo TiposObtendo Entrada Básica do UsuárioRecapitulação - Entrada e Saída8Funções
Entendendo FunçõesDeclarando uma FunçãoChamando FunçõesParâmetros de FunçãoRetornando um Único ValorRetornando Múltiplos ValoresValores de Retorno NomeadosFundamentos de Escopo de FunçãoRecapitulação - Criando Código Reutilizável11Tipos Compostos: Slices
Introdução aos SlicesDeclarando Literais de SliceCriando Slices com `make`Comprimento vs Capacidade de SlicesAcessando Elementos de SlicesAdicionando ElementosFatiando Slices/Arrays ExistentesIterando sobre SlicesCopiando SlicesRecapitulação - Listas Dinâmicas3Operadores Básicos
Operadores AritméticosOperador de DivisãoO Operador MóduloOperador de AtribuiçãoOperadores de Atribuição CompostaIncremento e DecrementoRecapitulação - Cálculos6Fluxo de Controle: Condicionais
A Instrução `if`A Palavra-chave `else`A Palavra-chave `else if`Sombreamento de Variáveis no `if`Inicializando VariáveisA Instrução `switch`Switch com ExpressõesSwitch sem ExpressãoA Palavra-chave `fallthrough`Recapitulação - Tomando Decisões