NULL

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

NULL (он же None, он же null) — особо значенне в некоторых системах программирование, обозначающее «полное отсутствие значения».

Описание[править]

В большинстве случаев эквивалентно обычному нулю, иногда с приведением типа для уверенности.

Дело том, что в кодинговых задачах полагается, что нулевым является только значение, равное 0. Любое иное, в том числе отрицательное, считается тем не менее ненулевым. Похожая логика применяется и при проверке выражения на true и фалсе, где фалсе считается только выражение, равное нулю, а если значение положительное, то это труе.

Чтобы сделать это всё однозначным, выделяются специальные названия типа NULL и false, которые выглядят более понятно, чем просто 0.

Является ли NULL/None/null обязательно нулём? Нет. Но, опять же, тут в зависимости от языка. Например С/С++ это языки со слабой типизацией и там NULL является указателем со значением 0 (размер указателя уже зависит от архитектуры камня). А вот какой-нибудь Петон или C-хештег уже более категоричен в этом вопросе и попытка умножить число на None/null или сравнить его с false/труе приведет к недопониманию.

К слову, в PHP поведение довольно потешное и даже смешное — формально фалсе это пустая строка, однако она также считается эквивалентной нулю (так как числовое значение строки — это её длина). В SQL также NULL соответствует пустой строке и выводится для удобства.

Movax1010h.png Глубокий смысл скрыт в этих неестественных языках
Языки программированияПромышленные: BATC#CC++JavaJavaScript (AJAX) • PascalPerlPHPPythonRubyABAPАссемблерВасикFortran (Профессор)
Эзотерические: BrainFuckHQ9++ErlangForthHaskellLISP (My other car) • PrologTclΤΕΧOracleMySQLGolangВ++Scala
ПрофессииБыдлокодерПрограммистТестировщикХакерХеллоуворлдщикIT-звёздыПрограммист (существо)
Методы и стилиReverse EngineeringАнти-паттернВыстрелить себе в ногуГрязный хакКод (индусский) • КостыльМетод научного тыкаПомолясьСвистелки и перделкиОчередьСпортивное программированиеОбфускацияБета-тестАльфа-тестШаблоныRegReplaceФреймворкБыдлокодIndex.phpОхота за жукамиКуМирКлеточный автомат
Средства разработкиSublime TextПодсветка синтаксиса кодаUnstable DiffusionAPIPythonTutorCodeWarsDataCampUnity3DКнижный PythonMallocСвязный списокSOLIDООПУказательNULLWeLang++
ЛюдиИлья КанторЮрий КлючевскийЭдуард ЛаасЭдвард СноуденСеймур Пейперт
Прочее++i + ++iDeadline%s640 килобайтCMSDummy modeЕГГОГFoobarGod is real, unless explicitly declared as integerGOTOIfconfigKISSRegExpSICPsql.ruXyzzyДискетаИнжалид дежицеКОИ-8ЛогМанРекурсияСУБДТест ТьюрингаУмение разбираться в чужом кодеФаза ЛуныФатальный недостатокПроблема 2000ТаймстампКэшЗапись в файл без кэша (Perl)Танцы с бубномКодач