Aula 02 - Fundamentos da Linguagem 🧱
Objetivo
Objetivo: Dominar os blocos de construção essenciais do Go: tipos de dados, variáveis, operadores e as estruturas de controle de fluxo.
1. Variáveis e Constantes 📦
Em Go, existem diversas formas de declarar variáveis, mas a linguagem preza pela clareza e tipagem forte.
Declaração Explícita vs Curta
// Forma longa (com tipo)
var nome string = "Gopher"
// Forma curta (inferência de tipo - apenas dentro de funções)
idade := 25
// Constantes (valores que não mudam)
const Pi = 3.1415
2. Tipos Primitivos 💎
Go possui tipos bem definidos para garantir eficiência de memória:
- Inteiros:
int,int8,int64,uint(sem sinal). - Decimais:
float32,float64. - Booleanos:
bool(true,false). - Textos:
string(UTF-8 por padrão!).
[!IMPORTANT] Go não faz conversão implícita de tipos. Você não pode somar um
intcom umfloat64sem converter um deles manualmente.
3. Estruturas Condicionais 🚦
O controle de fluxo em Go é simples e direto.
If / Else
Note que não usamos parênteses nos testes condicionais!
Switch
O switch em Go é poderoso e não precisa de break em cada caso (ele para automaticamente).
switch dia {
case "Sábado", "Domingo":
fmt.Println("Fim de semana! 🎉")
default:
fmt.Println("Dia de codar! 💻")
}
4. Estruturas de Repetição 🔁
Aqui está uma curiosidade: Go só tem uma palavra-chave para loops: for. Mas ele assume várias formas.
For Tradicional
For como "While"
5. Visualização de Fluxo (Mermaid) 📊
graph TD
Start([Início]) --> Input[Recebe Idade]
Input --> Cond{Idade >= 18?}
Cond -- Sim --> Adult[Pode entrar]
Cond -- Não --> Minor[Acesso negado]
Adult --> End([Fim])
Minor --> End
6. Mini-Projeto: Calculadora de IMC 🚀
Crie um programa imc.go que:
1. Declare variáveis para peso (float64) e altura (float64).
2. Calcule o IMC (peso / (altura * altura)).
3. Use um if/else ou switch para classificar:
* IMC < 18.5: Abaixo do peso.
* 18.5 a 24.9: Peso normal.
* >= 25: Acima do peso.
7. Exercícios de Fixação 🧠
- Qual a diferença entre usar
var x = 10ex := 10? - O que acontece se você declarar uma variável em Go e não usá-la? (Dica: tente compilar!)
- Como criar um loop infinito em Go?
Próxima Aula: Vamos aprender a organizar nosso código com Funções e Módulos! 🧩🧱🚀