Sobes.tech
Junior — Middle

Программалоо контекстинде Nil менен Nullдун айырмасы эмнеде?

sobes.tech AI

AIден жооп

Программалоо контекстинде, өзгөчө iOS жана Objective-Cде, Nil жана Null ар башка мааниге ээ:

  • Nil: Objective-C объектисине карата нөл (null pointer) көрсөткүчү. Объекттин жоктугун көрсөтүү үчүн колдонулат (мисалы, NSObject *obj = Nil;).

  • NULL: C структураларына же негизги түрлөргө карата нөл көрсөткүчтү билдирген макрос (мисалы, 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ды көрсөтүүчү объект.