Estruturas de controle
Go possui estruturas de controle simples, sem parênteses obrigatórios (diferente de Java) e com foco em clareza.
if
- Suporta inicialização na própria declaração.
- Não há operador ternário em Go.
Exemplo
Carregando editor interativo...
Comparação com Java
Java
if (x % 2 == 0) { ... }
Go
if x := numero % 2; x == 0 { ... } // inicialização direta
for
- Única estrutura de laço em Go (não há
while
oudo-while
) - Suporta quatro formas:
tradicional
, condiçãosimples
,infinito
erange
Exemplo
Carregando editor interativo...
switch
- Mais simples que em Java: não precisa de break (não há fall-through por padrão)
- Suporta múltiplas condições por caso e inicialização
Exemplo
Carregando editor interativo...
defer
- Adia a execução de uma instrução até o fim da função
- Útil para liberar recursos (similar ao
try-with-resources
em Java)
Exemplo
Carregando editor interativo...
Caso de uso
defer
é usado para fechar arquivos, conexões de banco ou liberar mutexes