Documentação de Go
Métodos e tipos em Go
Entenda declarações de tipos, structs, funções e métodos com receiver na linguagem Go.
Revisado em 2026-11-15
Declarar um tipo struct
Uma declaração type dá nome a um tipo. Um struct agrupa campos nomeados; cada campo tem seu próprio tipo. Structs são valores, e variáveis podem guardar uma struct diretamente ou por meio de um ponteiro.
type Account struct {
ID string
Balance int64
}Associar um método ao tipo
Um método é uma função declarada com um receiver. O receiver identifica o valor ao qual o método pertence. Com receiver ponteiro, o método pode modificar o valor apontado.
O nome e a assinatura dos métodos de um tipo compõem seu conjunto de métodos e determinam quais interfaces ele satisfaz.
func (a *Account) Withdraw(amount int64) error {
a.Balance -= amount
return nil
}Devolver erros explicitamente
Go normalmente comunica falhas por um valor de tipo error retornado pela função. Quem chama verifica esse valor, em geral comparando-o com nil, e decide como tratar a falha.
if err := account.Withdraw(100); err != nil {
return err
}