Sobes.tech
Junior — Middle

Тафовут дар байни Nil ва Null дар контексти барномасозӣ чист?

sobes.tech AI

Ҷавоб аз AI

Дар контексти барномаигозорӣ, махсусан дар iOS ва Objective-C, Nil ва Null маъноҳои гуногун доранд:

  • Nil: ишора ба объекти аст, ки баробар бо сифр (null pointer) барои объектҳои Objective-C. Барои нишон додани набудани объект истифода мешавад (масалан, NSObject *obj = Nil;).

  • NULL: макросест, ки ишора ба ишора ба сифр барои ишораҳои оддӣ ба сохторҳои C ё намудҳои primitives (масалан, int *ptr = NULL;).

  • NSNull: объекти махсус дар Foundation, ки барои намояндагии арзиши null дар коллексияҳо истифода мешавад (масалан, дар NSArray ё NSDictionary), зеро онҳо наметавонанд nil дошта бошанд.

Масалан:

NSObject *obj = Nil;       // набудани объект
int *ptr = NULL;           // набудани суроға
NSArray *array = @[[NSNull null]]; // объекти, ки null-ро дар дохили массив нишон медиҳад

Аз ин рӯ, Nil — ишора ба ишора ба объекти Objective-C, NULL — барои ишораҳои оддӣ, ва NSNull — объекти-заглушка барои намояндагии null дар коллексияҳо мебошад.