Fatias
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
1234randomNumbers := [] 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
1arrayName[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
12var 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
1arrayName[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
123var 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
12345678910111213package 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] }
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
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
Fatias
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
1234randomNumbers := [] 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
1arrayName[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
12var 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
1arrayName[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
123var 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
12345678910111213package 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] }
Obrigado pelo seu feedback!