Sobes.tech
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 түрүндөгү өзгөрмөгө берүү компиляция катага учурайт.

Ошентип, структура интерфейсти ишке ашырбаса, аны күтүлгөн жерлерде колдонууга болбойт, бул логикалык каталардын алдын алууга жардам берет.