Junior — Middle
Kako naznačiti pretraživaču da određena klasa implementira određeni interfejs?
sobes.tech АИ
Одговор од АИ
U Go-u, implementacija interfejsa se vrši nejasno: ako tip implementira sve metode interfejsa, automatski se smatra da implementira taj interfejs. Nije potrebno to eksplicitno navesti.
Primer:
package main
import "fmt"
type Speaker interface {
Speak() string
}
type Dog struct {}
func (d Dog) Speak() string {
return "Gav!"
}
func main() {
var s Speaker
d := Dog{}
s = d // Dog implementira interfejs Speaker
fmt.Println(s.Speak())
}
Ako želite da eksplicitno proverite da li tip implementira interfejs, možete koristiti proveru kompilacije:
var _ Speaker = (*Dog)(nil) // Kompajler će proveriti da li *Dog implementira Speaker
Na ovaj način, u Go-u, interfejsi se automatski implementiraju kada postoje potrebne metode.