Junior — Middle
Cum indicăm compilatorului că o anumită clasă implementează o anumită interfață?
sobes.tech AI
Răspuns de la AI
În Go, implementarea interfeței are loc în mod implicit: dacă un tip implementează toate metodele unei interfețe, acesta este considerat automat ca implementând acea interfață. Nu este necesar să specificați explicit acest lucru.
Exemplu:
package main
import "fmt"
type Speaker interface {
Speak() string
}
type Dog struct {}
func (d Dog) Speak() string {
return "Ham!"
}
func main() {
var s Speaker
d := Dog{}
s = d // Dog implementează interfața Speaker
fmt.Println(s.Speak())
}
Dacă doriți să verificați explicit dacă un tip implementează o interfață, puteți folosi o verificare de compilare:
var _ Speaker = (*Dog)(nil) // Compilatorul va verifica dacă *Dog implementează Speaker
Astfel, în Go, interfețele sunt implementate automat atunci când metodele necesare sunt prezente.