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