Что такое null (None)?

Что такое null (None)?


Допустим, у меня есть некое a равное null. С точки зрения памяти что такое a? Ссылка на некий null? Просто пустое значение без ссылки? Ссылка на пустую ячейку памяти?

Различается ли реализация null (None) в разных языках, и если да, то как?





Конечно, в разных языках реализации могут и будут различаться. Чем больше похожи языки друг на друга, тем ближе могут быть реализации.

Основная концепция в том, что nullNoneNULLnullptr и т.д. используются для индикации несуществующего объекта.

Обычно где-то внутри это просто превращается в целочисленный нуль или нулевой адрес.

В C# null - значение по умолчанию для ссылочных типов данных. Типы значений не могут быть null, но их можно обернуть в Nullable для нужного эффекта.

В Python None представляется собой отдельный тип NoneType.

В C NULL является макросом и обычно просто соответствует целому числу 0. Хотя с C23 появился отдельный тип nullptr_t и значение nullptr почти как в С++, начиная с C++11.




Report Page