Sobes.tech
Junior — Middle

Strukturanın verilmiş interfeysə uyğun olub olmadığını necə yoxlamaq olar?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da, strukturun interfeysə uyğunluğu yoxlaması qeyri-şüurludur — əgər struktur bütün interfeys metodlarını həyata keçirirsə, ona uyğundur.

Açıq yoxlama üçün, tez-tez kompilyasiya yoxlaması təyin etmə vasitəsilə həyata keçirilir:

type MyInterface interface {
    DoSomething()
}

type MyStruct struct {}

func (m MyStruct) DoSomething() {}

// Kompilyasiya yoxlaması
var _ MyInterface = (*MyStruct)(nil)

Əgər MyStruct MyInterface-i həyata keçirməzsə, kompilyator səhv verəcək. Bu, proqramı işə salmadan strukturun interfeysə uyğun olduğunu təmin etmək üçün rahat bir yoldur.