Sobes.tech
Middle

Mi az a nil interfész?

sobes.tech MI

Válasz az MI-től

Go nyelvben a nil interfész olyan interfészérték, amely nem tartalmaz konkrét típust vagy értéket. A Go-ban az interfész két részből áll: a típusból és az értékből. Az interfész akkor tekinthető nil-nek, ha mindkét rész nil.

Fontos megérteni, hogy egy interfész tartalmazhat nil mutatót egy adott típusra, de maga az interfész nem lesz nil, mivel a típus meg van határozva.

Példa:

var i interface{} // i == nil

var p *int = nil
var i2 interface{} = p // i2 != nil, mert a *int típus meg van határozva, bár az érték nil

fmt.Println(i == nil)  // true
fmt.Println(i2 == nil) // false

Ez gyakran vezet hibákhoz, amikor ellenőrzik, hogy az interfész nil-e, de tartalmaz egy nil mutatót, és a feltétel nem teljesül.

Ezért fontos figyelembe venni, hogy a nil interfész egy olyan interfész, amelyben egyszerre nincs típus és érték.