Proqramlaşdırmada interfeys nə vaxt nil dəyərinə sahib ola bilər və ya müəyyən edilə bilməz?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, bir interfeys aşağıdakı hallarda nil dəyərinə sahib ola bilər və ya qeyri-müəyyən ola bilər:
-
İnterfeys dəyişəni ilkinləşdirilməyib Əgər interfeys dəyişəni elan olunub, lakin ona heç bir dəyər təyin edilməyibsə, o
nilolur. -
İnterfeys sıfır göstərici ehtiva edir Go-da, interfeys iki hissədən ibarətdir: tip və dəyər. Əgər tip təyin olunubsa, lakin dəyər sıfır göstərici (
nil) isə, interfeysnildeyil, baxmayaraq ki, daxili dəyər mövcud deyil. -
nildəyərinin interfeysə ötürülməsi Əgər interfeysə müəyyən bir tipdən ((*MyStruct)(nil))nildəyəri ötürsəniz, interfeysnilolmayacaq, çünki tip mövcuddur.
Nümunə:
var i interface{} // i == nil
var p *int = nil
i = p // i != nil, çünki tip *int mövcuddur, lakin dəyər `nil`
if i == nil {
fmt.Println("i `nil`")
} else {
fmt.Println("i `nil` deyil")
}
nil yoxlamalarında bunu nəzərə almaq vacibdir ki, yanlış müsbət nəticələrin qarşısını almaq mümkün olsun.