Slices
Slices são semelhantes a arrays, mas possuem comprimentos dinâmicos, tornando-se uma alternativa mais flexível aos arrays.
Para criar um slice, utiliza-se a mesma sintaxe dos arrays, porém, neste caso, omite-se a tamanho.
Criação de um slice utilizando a palavra-chave var:
// Creates an empty slice with no elements
var sliceName [] dataType
// Creates a slice with the specified elements
var sliceName = [] dataType {element_1, element_2, ...}
Criação de um slice utilizando o operador :=:
// Creates a slice with the specified elements
sliceName := [] dataType { element_1, element_2, ... }
É possível adicionar elementos adicionais a um slice utilizando a função append. A função append retorna um novo slice com os elementos adicionados, que pode ser armazenado na variável original do slice. Isso ficará mais claro com um exemplo. A sintaxe básica da função append é a seguinte:
append(originalSlice, newElement1, newElement2, …)
O código a seguir 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]
Serão extraídos todos os elementos do startingIndex até o endingIndex. Observe que é necessário 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]
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 é possível armazenar essa parte extraída do array em uma variável, criando assim uma 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 observar que essa slice faz referência à parte do array da qual foi criada. Consequentemente, quaisquer alterações feitas nessa slice 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
Awesome!
Completion rate improved to 1.96
Slices
Deslize para mostrar o menu
Slices são semelhantes a arrays, mas possuem comprimentos dinâmicos, tornando-se uma alternativa mais flexível aos arrays.
Para criar um slice, utiliza-se a mesma sintaxe dos arrays, porém, neste caso, omite-se a tamanho.
Criação de um slice utilizando a palavra-chave var:
// Creates an empty slice with no elements
var sliceName [] dataType
// Creates a slice with the specified elements
var sliceName = [] dataType {element_1, element_2, ...}
Criação de um slice utilizando o operador :=:
// Creates a slice with the specified elements
sliceName := [] dataType { element_1, element_2, ... }
É possível adicionar elementos adicionais a um slice utilizando a função append. A função append retorna um novo slice com os elementos adicionados, que pode ser armazenado na variável original do slice. Isso ficará mais claro com um exemplo. A sintaxe básica da função append é a seguinte:
append(originalSlice, newElement1, newElement2, …)
O código a seguir 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]
Serão extraídos todos os elementos do startingIndex até o endingIndex. Observe que é necessário 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]
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 é possível armazenar essa parte extraída do array em uma variável, criando assim uma 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 observar que essa slice faz referência à parte do array da qual foi criada. Consequentemente, quaisquer alterações feitas nessa slice 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!