Junior — Middle
Akými spôsobmi je možné overiť, či štruktúra zodpovedá zadanému rozhraniu?
sobes.tech AI
Odpoveď od AI
V jazyku Go sa kontrola zhody štruktúry s rozhraním vykonáva nepriame — ak štruktúra implementuje všetky metódy rozhrania, zodpovedá mu.
Pre explicitnú kontrolu počas kompilácie sa často používa kontrola kompilácie pomocou priradenia:
type MyInterface interface {
DoSomething()
}
type MyStruct struct {}
func (m MyStruct) DoSomething() {}
// Kontrola kompilácie
var _ MyInterface = (*MyStruct)(nil)
Ak MyStruct neimplementuje MyInterface, kompilátor vypíše chybu. Je to pohodlný spôsob, ako zabezpečiť, že štruktúra zodpovedá rozhraniu bez spustenia programu.