Какое отличие между значениями Nil и Null в контексте программирования?

В контексте программирования, особенно в iOS и Objective-C, Nil и Null имеют разные значения:

Короткий ответ

Что ответить на собеседовании

В контексте программирования, особенно в iOS и Objective-C, Nil и Null имеют разные значения:

Подробный разбор

Ответ с пояснениями

В контексте программирования, особенно в iOS и Objective-C, Nil и Null имеют разные значения:

  • Nil — это указатель на объект, который равен нулю (null pointer) для объектов Objective-C. Используется для обозначения отсутствия объекта (например, 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 в коллекциях.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее