Junior — Middle
Kā norādīt kompilatoram, ka konkrēta klase īsteno noteiktu interfeisu?
sobes.tech AI
Atbilde no AI
Go valodā saskarnes īstenošana notiek netieši: ja tips īsteno visas saskarnes metodes, tas automātiski tiek uzskatīts par tās īstenotāju. Tam nav nepieciešams to skaidri norādīt.
Piemērs:
package main
import "fmt"
type Speaker interface {
Speak() string
}
type Dog struct {}
func (d Dog) Speak() string {
return "Gau!"
}
func main() {
var s Speaker
d := Dog{}
s = d // Dog īsteno Speaker saskarni
fmt.Println(s.Speak())
}
Ja vēlaties skaidri pārbaudīt, vai tips īsteno saskarni, varat izmantot kompilatora pārbaudi:
var _ Speaker = (*Dog)(nil) // Kompilators pārbaudīs, vai *Dog īsteno Speaker
Tādējādi Go valodā saskarnes tiek īstenotas automātiski, ja ir pieejamas nepieciešamās metodes.