Fatiando Slices/Arrays Existentes
Parte da seção Fundamentos do Journey de GO da Coddy — lição 80 de 109.
Você pode criar um novo slice a partir de um slice ou array existente especificando um intervalo com a sintaxe [start:end].
Crie um slice de números:
numbers := []int{10, 20, 30, 40, 50}
fmt.Println("Original:", numbers)Extraia elementos do índice 1 ao 3 (excluindo o 3):
slice1 := numbers[1:3]
fmt.Println("Slice [1:3]:", slice1)Resultado:
Original: [10 20 30 40 50]
Slice [1:3]: [20 30]Você também pode omitir o índice inicial ou final:
slice2 := numbers[:2] // Do início até o índice 2 (excluindo o 2)
slice3 := numbers[3:] // Do índice 3 até o fim
fmt.Println("Slice [:2]:", slice2)
fmt.Println("Slice [3:]:", slice3)Resultado:
Slice [:2]: [10 20]
Slice [3:]: [40 50]Desafio
InicianteNeste desafio, você praticará o fatiamento (slicing) de um slice existente para criar novos sub-slices. Você tem um slice de frutas e precisa criar dois novos slices a partir dele:
- Um slice contendo apenas as três primeiras frutas
- Um slice contendo apenas as duas últimas frutas
Em seguida, imprima ambos os novos slices para verificar seu trabalho.
Folha de consulta
Crie um novo slice a partir de um slice ou array existente usando a sintaxe [start:end]:
numbers := []int{10, 20, 30, 40, 50}
slice1 := numbers[1:3] // Elementos do índice 1 ao 3 (excluindo o 3)
fmt.Println(slice1) // [20 30]Você pode omitir o índice inicial ou final:
slice2 := numbers[:2] // Do início até o índice 2 (excluindo o 2)
slice3 := numbers[3:] // Do índice 3 até o fim
fmt.Println(slice2) // [10 20]
fmt.Println(slice3) // [40 50]Experimente você mesmo
package main
import "fmt"
func main() {
// Aqui está o nosso slice original de frutas
fruits := []string{"apple", "banana", "orange", "grape", "kiwi"}
// TODO: Crie um novo slice chamado 'firstThree' contendo apenas as três primeiras frutas
// TODO: Crie um novo slice chamado 'lastTwo' contendo apenas as duas últimas frutas
// Imprima os resultados
fmt.Println("First three fruits:", firstThree)
fmt.Println("Last two fruits:", lastTwo)
}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