0Pricing
Go Academy · Aula

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]int e [4]int sã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

  1. Arrays: coleções de tamanho fixo
  2. Slices: listas dinâmicas
  3. Maps: armazenamentos de chave e valor
  4. Iterando coleções com range
← Voltar para Go Academy