Documentação de Go
O identificador em branco (_) em Go
O papel especial do identificador em branco para descartar valores e em outras construções da linguagem Go.
Revisado em 2026-11-15
O que significa _
O identificador em branco é escrito como um sublinhado. Ele não introduz um nome que possa ser usado depois. Em uma atribuição, recebe um valor que o programa deliberadamente não vai utilizar.
Go exige que identificadores declarados sejam usados. O sublinhado oferece uma forma explícita de ignorar um valor sem criar uma variável sem uso.
for _, account := range accounts {
fmt.Println(account.ID)
}Verificar uma implementação de interface
Uma declaração como var _ AccountRepository = (*MemoryAccounts)(nil) pede ao compilador que verifique se *MemoryAccounts implementa AccountRepository. O identificador em branco descarta o valor declarado; a atribuição existe para fazer a verificação de tipos durante a compilação.
O conversor (*MemoryAccounts)(nil) produz um valor nulo de tipo ponteiro. A declaração não chama métodos nem cria uma instância concreta.
var _ AccountRepository = (*MemoryAccounts)(nil)Outros usos e limites
O identificador em branco também pode ignorar resultados de funções, como value, _ := strconv.Atoi(input). Isso descarta o erro; em código de produção, só faça isso quando ignorá-lo for realmente correto.
O sublinhado não é uma variável coringa que depois pode ser lida. Cada aparição funciona como um descarte independente.