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
NSArrayaleboNSDictionary), 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.