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]]