Middle
Ce este interfața nil?
sobes.tech AI
Răspuns de la AI
În Go, nil-ul pentru interfață este o valoare de interfață care nu conține niciun tip concret, nici o valoare. Interfața în Go este reprezentată prin două părți: tipul și valoarea. O interfață este considerată nil dacă ambele părți sunt egale cu nil.
Este important să înțelegem că o interfață poate conține un pointer nil către un tip specific, dar însăși interfața nu va fi nil, deoarece tipul este definit.
Exemplu:
var i interface{} // i == nil
var p *int = nil
var i2 interface{} = p // i2 != nil, deoarece tipul *int este definit, chiar dacă valoarea este nil
fmt.Println(i == nil) // true
fmt.Println(i2 == nil) // false
Acest lucru duce adesea la erori atunci când se verifică dacă o interfață este nil, dar ea conține un pointer nil, iar condiția nu se îndeplinește.
Prin urmare, atunci când lucrați cu interfețe, este important să țineți cont că o interfață nil este o interfață fără tip și valoare în același timp.