Documentação de Go
Slices em Go
Como slices descrevem uma parte de um array, percorrem coleções e são passadas como valores com referência ao armazenamento subjacente.
Revisado em 2026-11-15
Slice como visão de um array
Um slice não é o array inteiro: ele descreve uma sequência com ponteiro para o armazenamento, comprimento e capacidade. Copiar um slice copia esse descritor; os elementos podem continuar compartilhados. Slices são valores e podem ser nil.
accounts := []Account{{ID: "a"}, {ID: "b"}}
first := accounts[:1]Percorrer os elementos
range pode produzir o índice e o elemento em cada iteração. Quando só precisamos do elemento, o identificador _ recebe o índice e descarta esse valor. O blank identifier não declara uma variável que possa ser lida depois.
for _, account := range accounts {
fmt.Println(account.ID)
}Slice como parâmetro variádico
Em uma chamada a um parâmetro variádico, como NewRouter(handlers ...RouteRegister), podemos expandir um slice compatível com handlers... usando três pontos no argumento. Sem a expansão, uma slice não é aceita como uma lista de argumentos separados.
handlers := []RouteRegister{userHandler, transferHandler}
router := NewRouter(handlers...)