Junior — Middle
Care este diferența dintre o interfață goală și o interfață cu valoarea nil în limbajul de programare Go?
sobes.tech AI
Răspuns de la AI
În Go, interfața goală interface{} este o interfață care nu conține metode și poate stoca o valoare de orice tip. Cu toate acestea, atunci când o variabilă de tip interfață conține nil, este important să înțelegem exact ce reprezintă nil.
- Interfață goală, fără valoare: o variabilă de tip interfață care nu indică nicio valoare este considerată nil.
- Interfață cu valoare nil: dacă interfața conține un tip specific, dar valoarea acelui tip este nil, atunci interfața în sine nu este egală cu nil, deoarece conține informații despre tip.
Exemplu:
var i interface{} // i == nil
var p *int = nil // p == nil
i = p // i != nil, deoarece conține tipul *int, dar valoarea este nil
fmt.Println(i == nil) // false
fmt.Println(p == nil) // true
Este important să ținem cont de acest aspect la verificarea pentru nil pentru a evita erori neașteptate.