Junior — Middle
Proqramlaşdırma dilində interfeysdə sıfır dəyər nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, interfeysin sıfır dəyəri (zero value) nil-dir. Go-də interfeys, iki sahəni ehtiva edən bir növdür: konkret dəyər növünə işarə edən göstərici və öz dəyərinə işarə edən göstərici.
Əgər interfeys başlanğıc edilməyibsə, hər iki sahə nil-ə bərabərdir və belə bir interfeys sıfır sayılır.
Nümunə:
var i interface{}
fmt.Println(i == nil) // true
Əhəmiyyətlidir ki, interfeys yalnız içindəki tip və dəyər nil olduqda nil-ə bərabərdir. Əgər içində nil-ə işarə edən göstərici saxlanılırsa, öz interfeysi nil deyil.
Məsələn:
type MyType struct{}
var p *MyType = nil
var i interface{} = p
fmt.Println(i == nil) // false
Burada, i nil deyil, çünki interfeys içində *MyType tipi saxlanılır, hətta dəyəri nil olsa da.
Beləliklə, interfeysin sıfır dəyəri, tip və dəyərin olmaması, yəni nil-dir.