Middle
Nil interfeysi nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, nil interfeys, heç bir konkret tiplə və ya dəyərlə təmin edilməyən interfeys dəyəridir. Go-da interfeys iki hissədən ibarətdir: tip və dəyər. Hər iki hissə nil olarsa, interfeys nil hesab olunur.
Əhəmiyyətlidir ki, interfeys müəyyən bir tiplə nil göstərici içərə bilər, amma interfeys özü nil olmayacaq, çünki tiplər müəyyən edilmişdir.
Misal:
var i interface{} // i == nil
var p *int = nil
var i2 interface{} = p // i2 != nil, çünki *int tipi müəyyən edilmişdir, baxmayaraq ki, dəyər nil-dir
fmt.Println(i == nil) // true
fmt.Println(i2 == nil) // false
Bu, çox vaxt səhvlərə səbəb olur, çünki interfeysi nil kimi yoxlamaq istədikdə, o nil göstərici ehtiva edir və şərt yerinə yetmir.
Bu səbəbdən, interfeyslərlə işləyərkən, nil interfeys, həm tip, həm də dəyər olmadan olan interfeys olduğunu nəzərə almaq vacibdir.