2016-08-26 1 views
-2

Я начал эту тему для обмена знаниями о специальном значении NULL или указателе на разных языках программирования. Не стесняйтесь добавлять ссылки на дополнительные языки программирования для этой темы.NULL в разных языках программирования

+0

Я действительно восхищаюсь тем, что вы пытаетесь скомпилировать ссылку, подобную этой, но, как и игра «Jeopardy!» На этом сайте, вы ожидаете, что вы ставите сообщения в форме вопроса. Учитывая, что у вас здесь отличный ответ, моя рекомендация заключалась бы в следующем: (1) удалить этот текущий вопрос, поскольку он, вероятно, приблизится, (2) задайте второй вопрос в соответствии с «как идея пустого указателя представлены на разных языках? " (явный вопрос) и отправьте свой ответ, затем (3) пингуйте меня, чтобы я мог его прочитать! :-) – templatetypedef

+0

Я голосую, чтобы закрыть этот вопрос как не по теме, потому что это не вопрос. Это сайт для вопросов и ответов, и перед тем, как ответ может быть опубликован, должен ответить на вопрос. Это может быть более подходящим для [Documentation] (http://stackoverflow.com/documentation). –

+1

На самом деле, мне очень нравится идея Кена Уайта сделать эту документацию. – templatetypedef

ответ

0

В Java:

Существует специальный null type, тип выражения нуль (§3.10.7, §15.8.1), который не имеет названия.

Поскольку тип null не имеет имени, невозможно объявить переменную нулевого типа или применить к нулевому типу.

Нулевая ссылка - единственное возможное значение выражения нулевого типа.

Нулевую ссылку всегда можно присвоить или применить к любому ссылочному типу.

На практике программист может игнорировать нулевой тип и просто притворяться, что null - это просто специальный литерал, который может быть любого ссылочного типа.

Null Буквенный

Тип нуль имеет одно значение, нулевая ссылка, представленное нулевой буквального нулем, который формируется из ASCII символов.

Нулевой литерал всегда имеет нулевой тип (§4.1).

Каждая переменная в программе должна иметь значение до его использования; Каждая переменная класса, переменная экземпляра или компонент массива инициализируется значением по умолчанию при его создании:

Для всех ссылочных типов (§4.3) значение по умолчанию равно null.

Целочисленное или с плавающей точкой выражение x может быть преобразовано в boolean value, следуя соглашению языка C, что любое ненулевое значение истинно, выражением x! = 0.

Ссылка на объект obj может быть преобразована в логическое значение, следуя соглашению языка C, что любая ссылка, отличная от нуля, является истиной, выражением obj! = Null.


В PHP:

Специальная NULL значение представляет собой переменную без значения. NULL - единственное возможное значение типа null.

переменная считается нулевым, если:

он был назначен постоянный NULL.

еще не настроен.

не был удален().

При преобразовании в boolean, следующее значение считается значение FALSE:

Специальный тип NULL (включая неустановленные переменные)


В Python:

The Null Object - Этот объект возвращается по функциям, которые явно не возвращают значение. Он не поддерживает никаких специальных операций. Существует ровно один нулевой объект с именем None (встроенное имя).

Написано как None.

Следующее значение не считаются false:

Ни


В C:

В C, две нулевых указателей любого типа гарантированно сравнить равно. Макрос NULL определяется как константа нулевого указателя, определяемая реализацией, которая в C99 может быть переносимо выражена как целочисленное значение 0, преобразованное неявно или явно в тип void*.


В C++:

В C++, в то время как NULL макро была унаследована от C, целого числа буквального для нуля традиционно предпочтительный, чтобы представлять нулевую константу указателя.


В C#:

null ключевое слово является буквальным, который представляет собой пустую ссылку, тот, который не относится к любому объекту. Значение null является значением по умолчанию для переменных ссылочного типа. Обычные типы значений не могут быть нулевыми. Однако C# 2.0 представил nullable value types.


В Ruby:

NilClass

Класс одноэлементной объекта ноль.

+0

В C++ теперь есть ключевое слово nullptr, которое является безопасным по типу.Его тип - 'std :: nullptr_t', и он ведет себя аналогично нулевому типу Java. Надеюсь это поможет! – templatetypedef