Sobes.tech
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, NSArray ar NSDictionary), nes jos negali turėti nil.

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.