Arrays: coleções de tamanho fixo
Literais de array, indexação e comprimento
Arrays: coleções de tamanho fixo é uma aula grátis de Go Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Go Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Go Academy inclui 4 aulas no total.
O que é um vetor
Um vetor em Go é uma sequência de comprimento fixo cujos elementos têm o mesmo tipo. O comprimento faz parte do tipo: [3]int e [4]int são tipos diferentes.
- Vetores são tipos de valor — atribuí-los copia o vetor inteiro
- O comprimento é sempre conhecido em tempo de compilação
- Raramente são usados diretamente; fatias são preferidas na maioria das tarefas
Literais de vetor
Declare e inicialize vetores com um literal:
package main
func main() {
primes := [5]int{2, 3, 5, 7, 11}
names := [3]string{"Alice", "Bob", "Carol"}
flags := [4]bool{true, false, true, false}
_ = primes; _ = names; _ = flags
}Comprimento e indexação de vetores
Use len() para obter o comprimento e a indexação baseada em zero para ler ou gravar elementos:
package main
import "fmt"
func main() {
scores := [3]int{90, 85, 92}
fmt.Println(len(scores)) // 3
fmt.Println(scores[0]) // 90
scores[1] = 100
fmt.Println(scores) // [90 100 92]
}Reticências em literais de vetor
Use [...] para deixar o compilador contar os elementos:
package main
import "fmt"
func main() {
days := [...]string{"Mon","Tue","Wed","Thu","Fri"}
fmt.Println(len(days)) // 5
}Vetores são tipos de valor
Quando você atribui ou passa um vetor, Go copia tudo. Modificar a cópia não afeta o original:
package main
import "fmt"
func main() {
a := [3]int{1, 2, 3}
b := a // full copy
b[0] = 99
fmt.Println(a) // [1 2 3] — unchanged
fmt.Println(b) // [99 2 3]
}Comparando vetores
Vetores do mesmo tipo e comprimento podem ser comparados com == e !=:
package main
import "fmt"
func main() {
x := [3]int{1, 2, 3}
y := [3]int{1, 2, 3}
z := [3]int{1, 2, 4}
fmt.Println(x == y) // true
fmt.Println(x == z) // false
}Vetores bidimensionais
Vetores podem ser aninhados para formar grades ou matrizes:
package main
import "fmt"
func main() {
grid := [2][3]int{
{1, 2, 3},
{4, 5, 6},
}
fmt.Println(grid[1][2]) // 6
}Iterando sobre um vetor
Use um laço for clássico ou range para iterar:
package main
import "fmt"
func main() {
nums := [4]int{10, 20, 30, 40}
for i, v := range nums {
fmt.Printf("[%d] = %d\n", i, v)
}
}Vetores versus fatias
As principais diferenças:
- Vetor: tamanho fixo, tipo de valor, tamanho como parte do tipo
- Fatia: tamanho dinâmico, tipo de referência, apoiada por um vetor
- Na prática, use fatias, a menos que precise de um tamanho fixo em tempo de compilação (por exemplo, um resumo SHA-256
[32]byte)
Armadilhas comuns
Fique atento a:
- Índice fora dos limites — Go entra em pânico em tempo de execução se
i >= len(arr) - Passar vetores grandes para funções causa cópias dispendiosas — use ponteiros ou fatias
- Esquecer que
[3]inte[4]intsão tipos incompatíveis
Verificação rápida
Qual é o comprimento de [...]string{"a","b","c"}?
Recapitulação: vetores
Principais aprendizados:
- Vetores têm um comprimento fixo, definido em tempo de compilação, que faz parte do tipo
- São tipos de valor — a atribuição copia todos os elementos
- Use
len()e indexação baseada em zero - Prefira fatias para a maioria das necessidades de coleções
Exercício prático
Declare um vetor de 5 inteiros, atribua o valor 100 ao terceiro elemento e depois imprima o vetor usando range.
Perguntas Frequentes
A aula “Arrays: coleções de tamanho fixo” é grátis?
Sim — o texto completo de “Arrays: coleções de tamanho fixo” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Go Academy, atualize para CoddyKit PRO. O curso de Go Academy inclui 4 aulas no total.
O que vou aprender em “Arrays: coleções de tamanho fixo”?
Literais de array, indexação e comprimento Você pratica Go Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Go Academy?
Nenhuma experiência prévia é necessária. Go Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Arrays: coleções de tamanho fixo”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Go Academy?
Sim. Cada aula de Go Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Arrays: coleções de tamanho fixo
- Slices: listas dinâmicas
- Maps: armazenamentos de chave e valor
- Iterando coleções com range