Junior — Middle
Kuidas saab kontrollida, kas struktuur vastab antud liidesele?
sobes.tech AI
Vastus AI-lt
Go keeles toimub struktuuri vastavuse kontroll interfeisile kaudselt — kui struktuur rakendab kõiki interfeisi meetodeid, siis see vastab sellele.
Selgeks kontrollimiseks kompileerimise ajal kasutatakse sageli kompileerimise kontrolli määramise kaudu:
type MyInterface interface {
DoSomething()
}
type MyStruct struct {}
func (m MyStruct) DoSomething() {}
// Kompileerimise kontroll
var _ MyInterface = (*MyStruct)(nil)
Kui MyStruct ei rakenda MyInterface-i, annab kompilaator vea. See on mugav viis veenduda, et struktuur vastab interfeisile, ilma programmi käivitamata.