Aula 03 - Funções e Organização do Código 🧩
Estruturando Projetos de Forma Profissional
Agenda de Hoje 📅
- Anatomia de uma Função
- Retornos Múltiplos e Variádicos
- Ponteiros: Endereços vs Valores
- Visibilidade (Exportação)
- Módulos e Gestão de Pacotes
- Mini-Projeto: Conversos Modular
1. Funções em Go ⚙️
- Funções são blocos independentes.
- Cidadãs de 1ª Classe: Podem ser variáveis e argumentos.
2. O Diferencial: Retornos Múltiplos 🔄
- Útil para retornar o dado e o erro simultaneamente.
func dividir(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("não pode dividir por 0")
}
return a / b, nil
}
3. Ponteiros: O Guia Definitivo 📍
- Endereço (
&): Onde o dado mora. - Valor (
*): O que tem dentro da casa.
"Ponteiros economizam memória ao evitar cópias de objetos grandes."
4. Organizando a Casa: Pacotes 📂
- Pastas = Pacotes.
- Exportação Camuflada:
Calcular(Maiúsculo) -> Público.calcular(Minúsculo) -> Privado do pacote.
5. Estrutura de Projeto 🏗️
6. Diagrama de Módulo 📊
graph LR
Main[main.go] -->|import| P1[Package 1]
Main -->|import| P2[Package 2]
P1 -->|internal| F1[Func Privada]
P1 -->|exported| F2[Func Pública]
Resumo da Aula ✅
- Go força uma organização clara por pastas.
- Múltiplos retornos eliminam a necessidade de exceções globais.
- Ponteiros dão controle total sobre a performance.
Próxima Aula: Estruturas de Dados 🗄️
- Slices: Arrays dinâmicos.
- Maps: O dicionário do Go.
- Structs: Criando seus tipos.
Dúvidas? 🤔
"Um código bom é um código organizado."