Junior — Middle
Como indicar ao compilador que uma classe específica implementa uma interface determinada?
sobes.tech IA
Resposta da IA
Em Go, a implementação de interfaces ocorre de forma implícita: se um tipo implementa todos os métodos de uma interface, ele é automaticamente considerado como implementando essa interface. Não é necessário indicá-lo explicitamente.
Exemplo:
package main
import "fmt"
type Speaker interface {
Speak() string
}
type Dog struct {}
func (d Dog) Speak() string {
return "Au au!"
}
func main() {
var s Speaker
d := Dog{}
s = d // Dog implementa a interface Speaker
fmt.Println(s.Speak())
}
Se desejar verificar explicitamente se um tipo implementa uma interface, pode usar uma verificação de compilação:
var _ Speaker = (*Dog)(nil) // O compilador verificará se *Dog implementa a interface Speaker
Dessa forma, em Go, as interfaces são implementadas automaticamente quando os métodos necessários estão presentes.