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:
- Strukturaning nusxasini interfeys turidagi o'zgaruvchiga tayinlashga harakat qiling — agar kompilyatsiya muvaffaqiyatli o'tsa, bu strukturani interfeysni amalga oshiradi.
- 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.