Junior — Middle
Kuo skiriasi Nil ir Null programavimo kontekste?
sobes.tech AI
Atsakymas iš AI
Programavimo kontekste, ypač iOS ir Objective-C, Nil ir Null turi skirtingas reikšmes:
-
Nil: yra nuoroda į objektą, kuris yra lygus nuliui (null pointer) Objective-C objektams. Naudojama nurodyti, kad objekto nėra (pavyzdžiui,
NSObject *obj = Nil;). -
NULL: yra makro, žymintis nulio nuorodą į įprastus C struktūrų ar primityvių tipų rodykles (pavyzdžiui,
int *ptr = NULL;). -
NSNull: yra specialus objektas Foundation, naudojamas nurodyti null reikšmę kolekcijose (pavyzdžiui,
NSArrayarNSDictionary), nes jos negali turėtinil.
Pavyzdys:
NSObject *obj = Nil; // objekto nėra
int *ptr = NULL; // adresas nėra
NSArray *array = @[[NSNull null]]; // objektas, žymintis null masyve
Taigi, Nil yra nulio nuoroda į Objective-C objektus, NULL – įprastoms nuorodoms, o NSNull – objektas, žymintis null kolekcijose.