Sobes.tech
Junior — Middle

Mi a különbség a Nil és Null között a programozás kontextusában?

sobes.tech MI

Válasz az MI-től

A programozás kontextusában, különösen az iOS és Objective-C esetében, a Nil és a Null különböző jelentéssel bír:

  • Nil: egy mutató egy Objective-C objektumra, amely nulla (null pointer). Az objektum hiányának jelzésére használják (például, NSObject *obj = Nil;).

  • NULL: egy makró, amely egy null mutatót jelöl normál mutatókhoz C-struktúrákra vagy primitív típusokra (például, int *ptr = NULL;).

  • NSNull: egy speciális objektum a Foundation-ben, amelyet null értékek reprezentálására használnak kollekciókban (például, NSArray vagy NSDictionary), mivel ezek nem tartalmazhatnak nil-t.

Példa:

NSObject *obj = Nil;       // nincs objektum
int *ptr = NULL;           // nincs cím
NSArray *array = @[[NSNull null]]; // objektum, amely null-t jelez egy tömbben

Ezért, a Nil egy null mutató Objective-C objektumokra, a NULL normál mutatókra, az NSNull pedig egy helyettesítő objektum a kollekciókban lévő null értékekhez.