Sobes.tech
Junior — Middle

Aký je rozdiel medzi Nil a Null v kontexte programovania?

sobes.tech AI

Odpoveď od AI

V kontexte programovania, najmä v iOS a Objective-C, majú Nil a Null odlišné významy:

  • Nil: je ukazovateľ na objekt, ktorý je rovný nule (null pointer) pre Objective-C objekty. Používa sa na označenie neprítomnosti objektu (napríklad, NSObject *obj = Nil;).

  • NULL: je makro, ktoré označuje nulový ukazovateľ pre bežné ukazovatele na C štruktúry alebo primitívne typy (napríklad, int *ptr = NULL;).

  • NSNull: je špeciálny objekt v Foundation, ktorý sa používa na reprezentáciu null hodnoty v kolekciách (napríklad, v NSArray alebo NSDictionary), pretože tieto nemôžu obsahovať nil.

Príklad:

NSObject *obj = Nil;       // neexistuje objekt
int *ptr = NULL;           // neexistuje adresa
NSArray *array = @[[NSNull null]]; // objekt označujúci null v poli

Preto je Nil nulový ukazovateľ pre Objective-C objekty, NULL pre bežné ukazovatele a NSNull je objekt-zástupca na reprezentáciu null v kolekciách.