Instruções if e expressões de inicialização
Condicionais com instruções opcionais de inicialização
Instruções if e expressões de inicialização é 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.
if em Go
A instrução if do Go avalia uma expressão booleana — não são necessários parênteses, mas as chaves são obrigatórias:
if x > 0 {
// positive
}else e else if
Encadeie condições com else if e trate o caso alternativo com else:
func classify(n int) string {
if n < 0 {
return "negative"
} else if n == 0 {
return "zero"
} else {
return "positive"
}
}if com instrução de inicialização
Go permite uma instrução de inicialização opcional antes da condição — ideal para limitar o escopo de variáveis temporárias:
if err := doSomething(); err != nil {
// err is only in scope here
return err
}Definição de escopo com instrução de inicialização
As variáveis declaradas na instrução de inicialização ficam no escopo do bloco if/else. Isso impede que variáveis vazem para a função envolvente:
func process(id int) error {
if val, err := lookup(id); err != nil {
return err
} else {
use(val) // val is in scope here
}
return nil
}Expressões booleanas
A condição do Go deve ser um bool — não há conversão implícita:
- Válido:
if count != 0 - Inválido:
if count— erro de compilação em Go (ao contrário de C/JavaScript) - Isso evita bugs comuns de deslocamento de um e de desreferência de nil
Verificações de nil
Verifique ponteiros, fatias, mapas e erros nil com == nil:
func greet(name *string) string {
if name == nil {
return "Hello, stranger"
}
return "Hello, " + *name
}Padrão de retorno antecipado
Go favorece fortemente retornos antecipados para reduzir o aninhamento (o "caminho feliz" permanece na margem esquerda):
func save(user User) error {
if user.Name == "" {
return errors.New("name required")
}
if user.Age < 0 {
return errors.New("invalid age")
}
return db.Insert(user)
}Combinação de condições
Use && e || para combinar condições. A avaliação com curto-circuito se aplica — o lado direito só é avaliado quando necessário:
if user != nil && user.IsActive() {
sendEmail(user)
}if versus switch
Quando há muitas condições sobre a mesma variável, switch geralmente é mais claro. Use if quando:
- As condições são expressões booleanas independentes
- É necessário usar instruções de inicialização com verificações de erro
- Há apenas 1 ou 2 ramificações
Como evitar pirâmides de if-else
Blocos de if-else profundamente aninhados prejudicam a legibilidade. Combata isso com:
- Retornos antecipados
- Instruções
switchpara vários casos - Divisão da lógica em funções menores
- Cláusulas de proteção no início de uma função
Verificação rápida
O que há de exclusivo na instrução if do Go em comparação com C?
Recapitulação: instruções if
A instrução if do Go é poderosa e clara:
- Não há parênteses ao redor da condição — as chaves são obrigatórias
- A instrução de inicialização limita o escopo das variáveis ao bloco if/else
- A condição deve ser estritamente
bool - Prefira retornos antecipados a aninhamentos profundos
- Use
&&/||com avaliação por curto-circuito
Próximo: o versátil laço for do Go.
Perguntas Frequentes
A aula “Instruções if e expressões de inicialização” é grátis?
Sim — o texto completo de “Instruções if e expressões de inicialização” é 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 “Instruções if e expressões de inicialização”?
Condicionais com instruções opcionais de inicialização 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 “Instruções if e expressões de inicialização”?
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
- Instruções if e expressões de inicialização
- O laço for: todos os padrões
- Instruções switch em Go
- break, continue e rótulos