Arrays e Slices
Um array tem um tamanho fixo que é parte do seu tipo — [3]int e [5]int são tipos completamente diferentes. Arrays existem no Go, mas são usados bem menos do que slices no código do dia a dia.
main.go
Teste você mesmo →package main
import "fmt"
func main() {
var grid [3]int
grid[0] = 10
grid[1] = 20
grid[2] = 30
fmt.Println(grid, len(grid))
}Output
[10 20 30] 3
Slices: a coleção preferida do Go
Um slice é uma visão flexível e crescente sobre um array subjacente — append() adiciona um item (crescendo o armazenamento subjacente automaticamente se necessário), e fazer slicing com [start:end] te dá uma visão sobre um intervalo sem copiar os dados.
main.go
Teste você mesmo →package main
import "fmt"
func main() {
fruits := []string{"apple", "banana", "cherry"}
fruits = append(fruits, "date")
fmt.Println(fruits)
firstTwo := fruits[0:2]
fmt.Println(firstTwo)
}Output
[apple banana cherry date] [apple banana]
A seguir: maps — a coleção chave-valor integrada do Go, e o idiom comma-ok para verificar se uma chave existe.
Practice exercise
Crie um slice numbers := []int{4, 8, 15, 16}, use append para adicionar 23, depois imprima o slice.