Junior — Middle
Qual é a diferença da interface na linguagem Go em comparação com as interfaces em outras linguagens de programação?
sobes.tech IA
Resposta da IA
Na linguagem Go, as interfaces diferem por serem implícitas — o tipo não precisa indicar explicitamente que implementa a interface. Se um tipo contém todos os métodos da interface, ele é automaticamente considerado como a implementando.
Isto difere de muitas outras linguagens, onde é necessário declarar explicitamente que uma classe ou tipo implementa uma interface.
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 do método
return 0, nil
}
func main() {
var r Reader
var f File
r = f // File implementa automaticamente Reader
fmt.Println(r)
}