[Pular para o conteúdo principal](#main-content)

[![Logo Bendev](/images/logo-branco.png)](/)

-   [Trabalhos](/projetos)
-   [Sobre](/sobre)
-   [Escrita](/blog)
-   [Aprendizado](/learning)
-   [Referência](/reference)
-   [Imprensa](/entrevistas)
-   [Contato](/contato)

PTENES

[Referência](/reference) / Go

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
}
```

## Fontes primárias

-   [Go Language Specification — Type declarations](https://go.dev/ref/spec#Type_declarations)
-   [Go Language Specification — Method declarations](https://go.dev/ref/spec#Method_declarations)
-   [A Tour of Go — Methods](https://go.dev/tour/methods/1)

## Relacionado

-   [Arquitetura hexagonal em Go: etapa de domínio](/learning/aprendendo-hexagonal-em-go#etapa-dominio)
-   [Interfaces em Go](/reference/go/interfaces)

![Logo Bendev](/images/logo-branco.png)

© 2026 Bendev Junior. Todos os direitos reservados.

### Links Rápidos

-   [Trabalhos](/projetos)
-   [Sobre](/sobre)
-   [Escrita](/blog)
    -   [Livros](/livros)
-   [Imprensa](/entrevistas)
-   [Contato](/contato)

### Redes Sociais

[LinkedIn de Bendev Junior](https://linkedin.com/in/bendevjunior)[GitHub de Bendev Junior](https://github.com/bendevjunior)[Instagram de Bendev Junior](https://instagram.com/bendevoficial)
