Care este diferența dintre Nil și Null în contextul programării?
sobes.tech AI
Răspuns de la AI
În contextul programării, în special în iOS și Objective-C, Nil și Null au semnificații diferite:
-
Nil: este un pointer către un obiect care este egal cu zero (pointer nul) pentru obiectele Objective-C. Este folosit pentru a indica absența unui obiect (de exemplu,
NSObject *obj = Nil;). -
NULL: este un macro care indică un pointer nul pentru pointerii obișnuiți către structuri C sau tipuri primitive (de exemplu,
int *ptr = NULL;). -
NSNull: este un obiect special în Foundation, utilizat pentru a reprezenta valoarea null în colecții (de exemplu, în
NSArraysauNSDictionary), deoarece acestea nu pot conținenil.
Exemplu:
NSObject *obj = Nil; // nu există obiect
int *ptr = NULL; // nu există adresă
NSArray *array = @[[NSNull null]]; // obiect care reprezintă null în interiorul unui array
Prin urmare, Nil este un pointer nul pentru obiecte Objective-C, NULL pentru pointeri obișnuiți, iar NSNull este un obiect substituent pentru reprezentarea null în colecții.