Sobes.tech
Junior — Middle

Jaký je rozdíl mezi Nil a Null v kontextu programování?

sobes.tech AI

Odpověď od AI

V kontextu programování, zejména v iOS a Objective-C, mají Nil a Null odlišné významy:

  • Nil: je ukazatel na objekt, který je roven nule (null pointer) pro objekty Objective-C. Používá se k označení nepřítomnosti objektu (například, NSObject *obj = Nil;).

  • NULL: je makro označující nulový ukazatel pro běžné ukazatele na C struktury nebo primitivní typy (například, int *ptr = NULL;).

  • NSNull: je speciální objekt v Foundation, který se používá k reprezentaci null hodnoty v kolekcích (například v NSArray nebo NSDictionary), protože ty nemohou obsahovat nil.

Příklad:

NSObject *obj = Nil;       // žádný objekt
int *ptr = NULL;           // žádná adresa
NSArray *array = @[[NSNull null]]; // objekt označující null uvnitř pole

Proto je Nil nulový ukazatel pro objekty Objective-C, NULL pro běžné ukazatele a NSNull je zástupný objekt pro reprezentaci null v kolekcích.