Junior — Middle
Чӣ гуна метавон санҷид, ки оё сохтор ба интерфейси додашуда мувофиқ аст?
sobes.tech AI
Ҷавоб аз AI
Дар Go, санҷиши мувофиқати сохтор бо интерфейс ғайрирасмӣ сурат мегирад — агар сохтор ҳамаи усулҳои интерфейсро иҷро кунад, он ба он мувофиқ аст.
Барои санҷиши ошкор дар марҳилаи компилятсия, аксар вақт истифода мешавад санҷиши компилятсия тавассути таъин:
type MyInterface interface {
DoSomething()
}
type MyStruct struct {}
func (m MyStruct) DoSomething() {}
// Санҷиши компилятсия
var _ MyInterface = (*MyStruct)(nil)
Агар MyStruct MyInterface-ро иҷро накунад, компилятор хато медиҳад. Ин роҳи қулайест, ки бидуни иҷрои барнома, мувофиқати сохтор бо интерфейсро таъмин кунад.