Junior — Middle
Dasturlashda bo'sh interfeys va oddiy interfeys o'rtasidagi bog'liqlik nima?
sobes.tech AI
AIdan javob
Go'da bo'sh interfeys interface{} — bu hech qanday metodlarni o'z ichiga olmaydigan interfeys. U har qanday turdagi qiymatni saqlay oladi, chunki barcha turlar standart ravishda bo'sh interfeysni amalga oshiradi. Oddiy interfeys esa, bu interfeysga mos kelishi uchun turga taalluqli metodlar to'plamini belgilaydi.
Shunday qilib, Go'da bo'sh va oddiy interfeyslar o'rtasidagi bog'liqlik shundaki, bo'sh interfeys har qanday turdagi qiymatlar uchun universal konteyner bo'lsa, oddiy interfeys aniq turlar uchun shartnoma belgilaydi. Bo'sh interfeys ko'pincha ma'lumotlarni aniq bo'lmagan turda saqlash va uzatish uchun ishlatiladi, oddiy interfeyslar esa ob'ektlarning xulq-atvorini belgilash uchun.
Misol:
var any interface{} = 42 // bo'sh interfeys har qanday qiymatni saqlay oladi
// Oddiy interfeys
type Reader interface {
Read(p []byte) (n int, err error)
}
// Reader ni amalga oshiradigan tur
type File struct {}
func (f File) Read(p []byte) (int, error) {
// amalga oshirish
return 0, nil
}
var r Reader = File{} // File, Reader interfeysini amalga oshiradi