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

bookSlices

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

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]

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

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]

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 é possível armazenar essa parte extraída do array em uma variável, criando assim uma 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 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

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á a saída 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

Awesome!

Completion rate improved to 1.96

bookSlices

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

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]

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

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]

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 é possível armazenar essa parte extraída do array em uma variável, criando assim uma 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 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

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á a saída 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