Sobes.tech
Junior — Middle

Чӣ гуна метавон санҷид, ки оё сохтор ба интерфейси додашуда мувофиқ аст?

sobes.tech AI

Ҷавоб аз AI

Дар Go, санҷиши мувофиқати сохтор бо интерфейс ғайрирасмӣ сурат мегирад — агар сохтор ҳамаи усулҳои интерфейсро иҷро кунад, он ба он мувофиқ аст.

Барои санҷиши ошкор дар марҳилаи компилятсия, аксар вақт истифода мешавад санҷиши компилятсия тавассути таъин:

type MyInterface interface {
    DoSomething()
}

type MyStruct struct {}

func (m MyStruct) DoSomething() {}

// Санҷиши компилятсия
var _ MyInterface = (*MyStruct)(nil)

Агар MyStruct MyInterface-ро иҷро накунад, компилятор хато медиҳад. Ин роҳи қулайест, ки бидуни иҷрои барнома, мувофиқати сохтор бо интерфейсро таъмин кунад.