Aula 04 - Estruturas de Dados Avançadas 🗄️
Gerenciando Coleções e Tipos Customizados
Agenda de Hoje 📅
- Arrays vs Slices
- Manipulação de Slices (Append/Slice)
- Maps: Chave e Valor
- Structs: O Coração dos Dados
- Métodos e Comportamento
- Mini-Projeto: Escola de Gophers
1. Arrays vs Slices 🍕
- Arrays: Rígidos, tamanho faz parte do tipo.
- Slices: Flexíveis, dinâmicos. O "padrão" do Go.
2. Anatomia de um Slice 🔍
graph LR
subgraph "Capacidade (Reservado)"
D3[Elemento 3]
D4[Vazio]
end
subgraph "Slice (Existente)"
D1[Elemento 1]
D2[Elemento 2]
end
Ptr[Ponteiro] --> D1
3. Maps: O Dicionário Veloz 🗝️
- Coleção de pares chave-valor.
- Chaves devem ser comparáveis.
4. Structs: Seus Próprios Tipos 🏗️
- Go não tem classes, tem Structs.
- Agrupam dados de tipos diferentes.
5. Adicionando Comportamento (Métodos) ⚡
- Funções "anexadas" a um tipo.
func (a Aluno) Media() float64 {
total := 0.0
for _, n := range a.Notas {
total += n
}
return total / float64(len(a.Notas))
}
6. Mini-Projeto: Escola de Gophers 🚀
- Criar um sistema que armazena alunos em um
map. - Cada aluno é uma
struct. - Calcular e exibir médias.
Resumo da Aula ✅
- Slices são extensões dinâmicas de memória.
- Maps oferecem performance em buscas por chaves.
- Structs modelam o domínio do seu negócio.
Próxima Aula: Interfaces e Flexibilidade 🧩
- O segredo do Polimorfismo em Go.
- Programação baseada em Composição.
Dúvidas? 🤔
"A estrutura de dados correta resolve metade do problema."