Middle
Nil interfeysi nima?
sobes.tech AI
AIdan javob
Go tilida, nil interfeys - bu hech qanday aniq tur va qiymatga ega bo'lmagan interfeys qiymatidir. Go'da interfeys ikki qismdan iborat: tur va qiymat. Agar ikkala qism ham nil bo'lsa, interfeys nil hisoblanadi.
Muhim bo'lib, interfeys ma'lum bir turga oid nil ko'rsatkichni o'z ichiga olishi mumkin, lekin o'zi nil bo'lmaydi, chunki tur belgilangan.
Misol:
var i interface{} // i == nil
var p *int = nil
var i2 interface{} = p // i2 != nil, chunki *int turi belgilangan, garchi qiymat nil bo'lsa ham
fmt.Println(i == nil) // true
fmt.Println(i2 == nil) // false
Bu ko'pincha xatolarga olib keladi, chunki interfeysni nil deb tekshirishda, u nil ko'rsatkichni o'z ichiga olgan bo'lsa, shart bajarilmaydi.
Shuning uchun, interfeyslar bilan ishlaganda, nil interfeys - bu tur va qiymat bilan bir vaqtda bo'lmagan interfeys ekanligini hisobga olish muhimdir.