Junior — Middle
Jak naznačit překladači, že konkrétní třída implementuje určité rozhraní?
sobes.tech AI
Odpověď od AI
V jazyce Go dochází k implementaci rozhraní implicitně: pokud typ implementuje všechny metody rozhraní, je automaticky považován za jeho implementaci. Není třeba to výslovně uvádět.
Příklad:
package main
import "fmt"
type Speaker interface {
Speak() string
}
type Dog struct {}
func (d Dog) Speak() string {
return "Haf!"
}
func main() {
var s Speaker
d := Dog{}
s = d // Dog implementuje rozhraní Speaker
fmt.Println(s.Speak())
}
Pokud chcete explicitně zkontrolovat, zda typ implementuje rozhraní, můžete použít kompilátorovou kontrolu:
var _ Speaker = (*Dog)(nil) // Kompilátor zkontroluje, že *Dog implementuje Speaker
Tímto způsobem jsou v jazyce Go rozhraní implementována automaticky, pokud jsou přítomny potřebné metody.