Pular para o conteúdo principal

Interfaces e duck typing

Interfaces

  • Definidas com type Nome interface, especificando métodos que um tipo deve implementar.
  • Go usa duck typing: se um tipo implementa os métodos de uma interface, ele a satisfaz automaticamente (sem declaração explícita, diferente de Java com implements).

Exemplo

Carregando editor interativo...

Comparação com Java

  • Em Java, interfaces exigem implements. Em Go, a implementação é implícita.
  • Go não suporta herança, mas interfaces permitem polimorfismo.

Interface vazia (interface{})

  • Equivalente a Object em Java, aceita qualquer tipo.
  • Usada com moderação, geralmente com type assertions ou type switches.

Exemplo

Carregando editor interativo...
Caso de uso

Interfaces são amplamente usadas em Go para abstrair repositórios, serviços ou plugins, garantindo flexibilidade e testabilidade.