Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Fatias | Vetores e Fatias
Introdução ao Golang

bookFatias

Fatias são semelhantes a arrays, mas possuem tamanhos dinâmicos, tornando-as uma alternativa mais flexível aos arrays.

Para criar uma fatia, utilizamos a mesma sintaxe que para arrays, mas, neste caso, omitimos a especificação do tamanho.

Criando uma fatia utilizando a palavra-chave var:

// Cria uma fatia vazia sem elementos
var nomeDaFatia [] tipoDeDado

// Cria uma fatia com os elementos especificados
var nomeDaFatia = [] tipoDeDado {elemento_1, elemento_2, ...}

Crie uma Fatia usando o operador :=:

// Cria uma fatia com os elementos especificados
nomeDaFatia := [] tipoDeDado { elemento_1, elemento_2, ... }

Podemos adicionar elementos adicionais a uma fatia usando a função append. A função append retorna uma nova fatia com os elementos acrescentados, a qual podemos então armazenar na variável original da fatia. Isso ficará mais claro com um exemplo. A sintaxe básica da função append é a seguinte:

append(fatiaOriginal, novoElemento1, novoElemento2, …)

O seguinte código demonstra o uso da função append:

index.go

index.go

copy
1234
randomNumbers := [] int { 1, 4, 5} fmt.Println(randomNumbers) // Output: [1 4 5] randomNumbers = append(randomNumbers, 7, 9) fmt.Println(randomNumbers) // Output: [1 4 5 7 9]

Da mesma forma que podemos acessar elementos dentro de um array, também podemos referenciar partes de um array utilizando a seguinte sintaxe:

index.go

index.go

copy
1
arrayName[startIndex:endIndex + 1]

Ele extrairá todos os elementos do startingIndex até o endingIndex. Por favor, note que precisamos fornecer endingIndex + 1. Isso ficará mais claro com um exemplo. Por exemplo:

index.go

index.go

copy
12
var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } fmt.Println(numbers[4:9]) // Output: [10 12 14 16 17]

Ele extrai os elementos dos índices 4 a 9, incluindo o elemento no índice 4 e excluindo o elemento no índice 9, conforme expresso na sintaxe:

index.go

index.go

copy
1
arrayName[startingIndex:endingIndex + 1]

Também podemos armazenar esta parte extraída do array em uma variável, criando assim um pedaço (slice):

index.go

index.go

copy
123
var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } numbersPart := numbers[2:7] fmt.Println(numbersPart) // Output: [6 9 10 12 14]

É importante notar que uma fatia referencia a parte do array do qual ela foi criada. Consequentemente, quaisquer alterações feitas nessa fatia também afetarão o array original:

index.go

index.go

copy
12345678910111213
package main import "fmt" func main() { var pin = [4] int { 1, 2, 3, 4 } part := pin[1:3] fmt.Println(pin) // Output [1, 2, 3, 4] fmt.Println(part) // Output: [2, 3] part[0] *= 2 part[1] *= 3 fmt.Println(part) // Output [4, 9] fmt.Println(pin) // Output [1, 4, 9, 4] }
question mark

Qual será o resultado do seguinte código?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you show an example of creating and appending to a slice?

How do I extract a portion of an array as a slice?

What happens if I modify a slice that was created from an array?

Awesome!

Completion rate improved to 1.96

bookFatias

Deslize para mostrar o menu

Fatias são semelhantes a arrays, mas possuem tamanhos dinâmicos, tornando-as uma alternativa mais flexível aos arrays.

Para criar uma fatia, utilizamos a mesma sintaxe que para arrays, mas, neste caso, omitimos a especificação do tamanho.

Criando uma fatia utilizando a palavra-chave var:

// Cria uma fatia vazia sem elementos
var nomeDaFatia [] tipoDeDado

// Cria uma fatia com os elementos especificados
var nomeDaFatia = [] tipoDeDado {elemento_1, elemento_2, ...}

Crie uma Fatia usando o operador :=:

// Cria uma fatia com os elementos especificados
nomeDaFatia := [] tipoDeDado { elemento_1, elemento_2, ... }

Podemos adicionar elementos adicionais a uma fatia usando a função append. A função append retorna uma nova fatia com os elementos acrescentados, a qual podemos então armazenar na variável original da fatia. Isso ficará mais claro com um exemplo. A sintaxe básica da função append é a seguinte:

append(fatiaOriginal, novoElemento1, novoElemento2, …)

O seguinte código demonstra o uso da função append:

index.go

index.go

copy
1234
randomNumbers := [] int { 1, 4, 5} fmt.Println(randomNumbers) // Output: [1 4 5] randomNumbers = append(randomNumbers, 7, 9) fmt.Println(randomNumbers) // Output: [1 4 5 7 9]

Da mesma forma que podemos acessar elementos dentro de um array, também podemos referenciar partes de um array utilizando a seguinte sintaxe:

index.go

index.go

copy
1
arrayName[startIndex:endIndex + 1]

Ele extrairá todos os elementos do startingIndex até o endingIndex. Por favor, note que precisamos fornecer endingIndex + 1. Isso ficará mais claro com um exemplo. Por exemplo:

index.go

index.go

copy
12
var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } fmt.Println(numbers[4:9]) // Output: [10 12 14 16 17]

Ele extrai os elementos dos índices 4 a 9, incluindo o elemento no índice 4 e excluindo o elemento no índice 9, conforme expresso na sintaxe:

index.go

index.go

copy
1
arrayName[startingIndex:endingIndex + 1]

Também podemos armazenar esta parte extraída do array em uma variável, criando assim um pedaço (slice):

index.go

index.go

copy
123
var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } numbersPart := numbers[2:7] fmt.Println(numbersPart) // Output: [6 9 10 12 14]

É importante notar que uma fatia referencia a parte do array do qual ela foi criada. Consequentemente, quaisquer alterações feitas nessa fatia também afetarão o array original:

index.go

index.go

copy
12345678910111213
package main import "fmt" func main() { var pin = [4] int { 1, 2, 3, 4 } part := pin[1:3] fmt.Println(pin) // Output [1, 2, 3, 4] fmt.Println(part) // Output: [2, 3] part[0] *= 2 part[1] *= 3 fmt.Println(part) // Output [4, 9] fmt.Println(pin) // Output [1, 4, 9, 4] }
question mark

Qual será o resultado do seguinte código?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 3
some-alt