Sobes.tech
Junior — Middle

Obyektga yo'naltirilgan dasturlashda berilgan interfeysni amalga oshirmagan holda ma'lumotlar tuzilmasida qanday oqibatlar yuzaga keladi?

sobes.tech AI

AIdan javob

Go tilida interfeyslar noaniq tarzda amalga oshiriladi: agar tuzilma interfeysning barcha metodlarini o'z ichiga olsa, u uni amalga oshiradi. Agar tuzilma berilgan interfeysni amalga oshirmasa:

  • Kompilyator bu tuzilmani interfeys turi sifatida ishlatishga urinishda xato chiqaradi.
  • Bu bajarilish vaqtida xatolarni oldini oladi, chunki Go qat'iy ravishda interfeysga mosligini tekshiradi.

Masalan, agar sizda quyidagi interfeys bo'lsa:

type Reader interface {
    Read(p []byte) (n int, err error)
}

Va tuzilma:

type MyStruct struct {}

// Read metodi yo'q, shuning uchun MyStruct Readerni amalga oshirmaydi

MyStruct'ni Reader turidagi o'zgaruvchiga tayinlash kompilyatsiya xatosiga olib keladi.

Shunday qilib, agar tuzilma interfeysni amalga oshirmasa, uni bu interfeys kutayotgan joyda ishlata olmaysiz, bu esa mantiqiy xatolarni oldini olishga yordam beradi.