Falta pouco!

0 dias

0 horas

0 min

0 seg

1
resposta

Tive a impressão de estar faltando aula

Boa tarde, creio que está faltando aula do porque da composição de interface, e como chamar pela interface e não pelo tipo concreto, ou estou errado?

1 resposta

Olá Carlos, como vai?

A composição de interfaces em Go é um conceito poderoso que permite que você crie interfaces mais complexas a partir de interfaces mais simples. Basicamente, você pode "compor" uma interface incluindo outras interfaces dentro dela. Isso é útil porque permite que você defina comportamentos que podem ser compartilhados entre diferentes tipos sem precisar duplicar código.

Por exemplo, imagine que você tem duas interfaces, Leitor e Escritor:

type Leitor interface {
    Ler(p []byte) (n int, err error)
}

type Escritor interface {
    Escrever(p []byte) (n int, err error)
}

Você pode criar uma interface LeitorEscritor que combina as duas:

type LeitorEscritor interface {
    Leitor
    Escritor
}

Agora, qualquer tipo que implemente tanto Ler quanto Escrever também implementa LeitorEscritor.

Quanto a chamar pela interface e não pelo tipo concreto, isso é uma prática comum em Go para promover a flexibilidade e a abstração. Ao programar para interfaces, você pode mudar a implementação subjacente sem alterar o código que usa a interface. Isso é útil para testes e para criar sistemas que são mais fáceis de manter e evoluir.

Por exemplo, se você tiver uma função que aceita um LeitorEscritor, ela pode trabalhar com qualquer tipo que implemente essa interface, seja ele um arquivo, uma conexão de rede ou mesmo uma string buffer.

func Processar(le LeitorEscritor) {
    // Implementação que usa le.Ler e le.Escrever
}

Espero que isso ajude a esclarecer um pouco sobre o uso de interfaces em Go. Se você sentir que continua faltando alguma aula ou explicação, pode ser útil revisar as seções do curso ou verificar se há materiais complementares disponíveis.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.