Junior — Middle
Объектке багытталган программалоодо берилген интерфейсти ишке ашпаган болсо, кандай натыйжалар болот?
sobes.tech AI
AIден жооп
Go тилинде интерфейстер жасырын түрдө ишке ашырылат: эгер структура бардык интерфейс методдорун камтыса, ал аны ишке ашырган болот. Эгер структура берилген интерфейсти ишке ашырбаса:
- Бул структураны интерфейс түрүндөгү мааниге колдонууга аракет кылганда компилятор катаны чыгарат.
- Бул ишке ашырууда ката кетирүүнүн алдын алат, анткени Go интерфейстерге шайкештигин катуу текшерет.
Мисалы, эгерде сизде төмөнкү интерфейс болсо:
type Reader interface {
Read(p []byte) (n int, err error)
}
Жана структура:
type MyStruct struct {}
// Read методу жок, ошондуктан MyStruct Readerди ишке ашырбайт
MyStructти Reader түрүндөгү өзгөрмөгө берүү компиляция катага учурайт.
Ошентип, структура интерфейсти ишке ашырбаса, аны күтүлгөн жерлерде колдонууга болбойт, бул логикалык каталардын алдын алууга жардам берет.