Мне любопытно, что все думают. В SQL (по крайней мере, в oracle) NULL трансформирует концептуально в «Я не знаю значения», поэтому NULL = NULL является ложным. (Может быть, это на самом деле приводит к NULL, который затем получает значение false или что-то в этом роде ...)Должно ли null == null быть истинным при сравнении объектов?
Это имеет смысл для меня, но в большинстве языков OO значение null означает «no reference», поэтому null == null должно, вероятно, будь настоящим. Это обычный способ делать вещи в C#, например, при переопределении Equals.
С другой стороны, значение null по-прежнему часто используется для обозначения «Я не знаю» в объектно-ориентированных языках, а реализация null == null в false может привести к тому, что код несколько более значим для определенных доменов.
Скажите, что вы думаете.
eh, где null означает «Я не знаю» на языке OO? И как бы вы проверили нулевые указатели, если 'null == null' вернули' false'? – hasen