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.