Sobes.tech
Junior — Middle

Qual é a diferença das interfaces em Golang em comparação com as de outras linguagens de programação?

sobes.tech IA

Resposta da IA

Em Go, as interfaces são implementadas pelo princípio de implementação implícita. Isso significa que um tipo implementa automaticamente uma interface se tiver todos os métodos que a interface exige, sem necessidade de declarar explicitamente no código (ao contrário de Java ou C#, onde é necessário declarar explicitamente a implementação da interface).

Isso permite escrever um código mais flexível e menos acoplado, pois tipos e interfaces não dependem diretamente um do outro.

Exemplo:

package main
import "fmt"

type Reader interface {
    Read(p []byte) (n int, err error)
}

type MyReader struct{}

func (r MyReader) Read(p []byte) (n int, err error) {
    // implementação de leitura
    return 0, nil
}

func main() {
    var r Reader = MyReader{} // implementação implícita da interface
    fmt.Println(r)
}

Além disso, em Go, não há herança de classes, as interfaces são usadas para polimorfismo e composição, o que as diferencia de muitas outras linguagens.