Sobes.tech
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.