Golang arrays

Arrays

Um array é um dado estruturado de tamanho fixo utilizado para armazenar uma sequência de elementos do mesmo tipo. Ele é armazenado na memória de uma forma sequencial e seus elementos podem ser acessados através de um índice.

Raramento utilizamos um array em Go, temos opções melhores para serem utilizadas em seu lugar. Todos os elementos de um array precisam ser do mesmo tipo que foi utilizado em sua declaração.

Diferentes maneiras de declarar um array

Nós podemos declarar um array de diferentes maneiras.

Declara x como um array de 3 elementos do tipo int.

var x = [3]int{}

Se você tentar imprimir esse array, você verá que todas as posições foram preenchidas com o valor padrão do tipo int.

>> [0 0 0]

Podemos declarar o array e inserir o valor em cada posição:

var x = [3]int{1, 2, 3}
>> [1 2 3]

Declarando um array utilizando um array literal

var x = [...]int{1, 2, 3}
>> [1 2 3]

Definindo valores em posições específicas

var x = [...]int{1, 3:1, 7, 8, 9}
>> [1 0 0 1 7 8 9]

Obtendo o tamanho de um array

var x = [5]int{1, 2, 3, 4, 5}
length := len(x)
fmt.Println(length)
>> 5

Lendo uma posição dentro de um array

var x = [5]int{1, 2, 3, 4, 5}
a := x[1]
fmt.Println(a)
>> 2

Escrevendo em uma posição dentro de um array

var x = [...]int{7, 8, 9}
x[0] = 1
fmt.Println(x)
>> [1 8 9]

Percorrendo um array com um for

var x = [...]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
for i, v := range x {
    fmt.Printf("Index: %d - Value: %d\n", i, v)
}
>> Index: 0 - Value: 1
>> Index: 1 - Value: 2
>> Index: 2 - Value: 3
>> Index: 3 - Value: 4
>> Index: 4 - Value: 5
>> Index: 5 - Value: 6
>> Index: 6 - Value: 7
>> Index: 7 - Value: 8
>> Index: 8 - Value: 9
>> Index: 9 - Value: 10

Obtendo um slice a partir de um array

Você pode obter somente um pedaço de um array utilizando essa sintaxe meuArray[inicio:fim], o início é inclusivo e o fim é exclusivo.

var x = [...]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
a := x[1:5]
fmt.Println(a)
>> [2 3 4 5]