Sobes.tech
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.