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]