Arrays

Arrays #

// Em Go, um _array_ é uma sequência numerada de elementos
// de um tamanho específico. Tipicamente, [slices](slices) são
// muito mais comuns; arrays são úteis em alguns cenários
// específicos.

package main

import "fmt"

func main() {

	// Aqui é criado um array `a` com capacidade de armazenar
	// exatamente 5 inteiros. O tipo de elemento que ele irá
	// armazenar (int) e seu tamanho (5) são partes do tipo do array.
	// Neste caso, o array tem valores padrão zero.
	var a [5]int
	fmt.Println("vazio:", a)

	// É possível alterar o valor de um índice do array
	// utilizando a sintaxe `array[índice] = valor`,
	// bem como selecionar um valor com `array[índice]`.
	a[4] = 100
	fmt.Println("índice 4 alterado:", a)
	fmt.Println("valor índice 4:", a[4])

	// A função nativa `len` retorna o tamanho de um array.
	fmt.Println("len:", len(a))

	// Para declarar a inicializar um array em uma linha,
	// é possível usar esta sintaxe.
	b := [5]int{1, 2, 3, 4, 5}
	fmt.Println("array inicializado:", b)

	// Arrays, via de regra são unidimensionais, mas é possível
	// compor tipos para formar arrays multidimensionais.
	var twoD [2][3]int
	for i := 0; i < 2; i++ {
		for j := 0; j < 3; j++ {
			twoD[i][j] = i + j
		}
	}
	fmt.Println("bi-dimensional: ", twoD)
}
# Note que arrays aparecem na forma `[v1 v2 v3 ...]`
# quando exibidos com `fmt.Println`.
$ go run arrays.go
vazio: [0 0 0 0 0]
índice 4 alterado: [0 0 0 0 100]
valor índice 4: 100
len: 5
array inicializado:: [1 2 3 4 5]
bi-dimensional:  [[0 1 2] [1 2 3]]