Senior
O que são interfaces em Go? Como os tipos implementam interfaces?
sobes.tech IA
Resposta da IA
Em Go, uma interface é um conjunto de métodos que descrevem um comportamento. Um tipo implementa uma interface se contiver todos os métodos declarados na interface, sem necessidade de indicar explicitamente a implementação da interface.
Isto é chamado implementação implícita de interfaces. Graças a isso, é possível escrever um código mais flexível e extensível.
Exemplo:
package main
import "fmt"
type Reader interface {
Read(p []byte) (n int, err error)
}
type File struct {}
func (f File) Read(p []byte) (n int, err error) {
// implementação de leitura
return 0, nil
}
func main() {
var r Reader
f := File{}
r = f // File implementa Reader
fmt.Println(r)
}
Aqui, o tipo File implementa a interface Reader porque possui um método Read com a assinatura necessária.