Sobes.tech
Junior — Middle

Ma'lum bir tuzilma berilgan interfeysni amalga oshirayotganligini qanday aniqlash mumkin?

sobes.tech AI

AIdan javob

Go tilida interfeysning amalga oshirilishi noaniq tarzda tekshiriladi: agar tur e'lon qilingan barcha metodlarni o'z ichiga olsa, u avtomatik ravishda bu interfeysni amalga oshiradi.

Bir strukturaning berilgan interfeysni amalga oshirayotganligini aniqlash uchun:

  1. Strukturaning nusxasini interfeys turidagi o'zgaruvchiga tayinlashga harakat qiling — agar kompilyatsiya muvaffaqiyatli o'tsa, bu strukturani interfeysni amalga oshiradi.
  2. Statik tekshiruvdan _var _ yordamida foydalaning:
var _ MyInterface = (*MyStruct)(nil)

Agar bu kod xatolarsiz kompilyatsiya qilinsa, bu MyStruct MyInterface interfeysini amalga oshiradi.

Misol:

type MyInterface interface {
    DoSomething()
}

type MyStruct struct {}

func (m *MyStruct) DoSomething() {
    // amalga oshirish
}

// Interfeysni amalga oshirishni tekshirish
var _ MyInterface = (*MyStruct)(nil)

Shu tarzda, Go da interfeysni aniq ko'rsatish shart emas — faqat uning barcha metodlarini amalga oshirish kifoya qiladi.