Junior — Middle
Hoe geef je de compiler aan dat een specifieke klasse een bepaalde interface implementeert?
sobes.tech AI
Antwoord van AI
In Go gebeurt de implementatie van interfaces impliciet: als een type alle methoden van een interface implementeert, wordt het automatisch beschouwd als implementerend die interface. Het is niet nodig om dit expliciet aan te geven.
Voorbeeld:
package main
import "fmt"
type Speaker interface {
Speak() string
}
type Dog struct {}
func (d Dog) Speak() string {
return "Woef!"
}
func main() {
var s Speaker
d := Dog{}
s = d // Dog implementeert de interface Speaker
fmt.Println(s.Speak())
}
Als je expliciet wilt controleren of een type een interface implementeert, kun je een compilatiecontrole gebruiken:
var _ Speaker = (*Dog)(nil) // De compiler controleert of *Dog Speaker implementeert
Op deze manier worden in Go interfaces automatisch geïmplementeerd wanneer de benodigde methoden aanwezig zijn.