Вопросы с тегом «null»

Нуль - это отсутствие значения. Ноль обычно используется, чтобы указать, что ссылка или переменная указателя указывают на отсутствие объекта в памяти.

161
Являются ли нулевые ссылки действительно плохой вещью?

Я слышал, что включение нулевых ссылок в языки программирования является «ошибкой в ​​миллиард долларов». Но почему? Конечно, они могут вызывать NullReferenceExceptions, но что с того? Любой элемент языка может быть источником ошибок при неправильном использовании. И какая альтернатива? Я полагаю,...

113
Стоит ли проверять на ноль, если он не ожидает ноль?

На прошлой неделе у нас был горячий спор об обработке нулей в слое обслуживания нашего приложения. Вопрос в контексте .NET, но он будет таким же в Java и многих других технологиях. Вопрос заключался в следующем: следует ли вам всегда проверять наличие нулевых значений и заставлять ваш код работать,...

82
Если ноль плох, почему современные языки реализуют его? [закрыто]

Я уверен, что разработчики языков, таких как Java или C #, знали проблемы, связанные с существованием нулевых ссылок (см. Действительно ли нулевые ссылки - это плохо? ). Также реализация типа параметра не намного сложнее, чем нулевые ссылки. Почему они решили включить его в любом случае? Я уверен,...

72
SQL: пустая строка против значения NULL

Я знаю, что эта тема немного противоречива, и в Интернете много разных статей / мнений. К сожалению, большинство из них предполагают, что человек не знает, в чем разница между NULL и пустой строкой. Таким образом, они рассказывают истории об удивительных результатах с объединениями / агрегатами и...

71
Как фамилия Null вызывает проблемы во многих базах данных?

Я прочитал статью на BBC. Один из примеров, по их словам, заключается в том, что у людей с фамилией «Нуль» возникают проблемы с вводом своих данных на некоторых веб-сайтах. Нет объяснения по поводу ошибки, с которой они сталкиваются. Но, насколько мне известно, строка 'Null' и фактическое значение...

59
Как я могу объяснить разницу между NULL и нулем?

Работа над проблемой, которая использует формулу процентного изменения: percent change = 100 * [(new value - old value) / old value] Как бы я объяснил разницу new value or old value = NULL, а не 0тому, кто не может быть программистом? Моему боссу интересно, почему в TextBox есть пустая строка, а не...

53
Как языки с типами Maybe вместо NULL обрабатывают краевые условия?

Эрик Липперт высказал очень интересную мысль в своем обсуждении того, почему C # использует тип, nullа не Maybe<T>тип : Согласованность системы типов важна; можем ли мы всегда знать, что необнуляемая ссылка ни при каких обстоятельствах не считается недействительной? Как насчет конструктора...

39
Почему «ссылка на объект не установлена ​​для экземпляра объекта» не говорит нам, какой объект?

Мы запускаем систему и иногда получаем известное исключение NullReferenceExceptionс сообщением Object reference not set to an instance of an object. Тем не менее, в методе, где у нас есть почти 20 объектов, наличие журнала, в котором говорится, что объект нулевой, на самом деле вообще бесполезен....

39
Является ли новое булево поле лучше нулевой ссылки, когда значение может отсутствовать?

Например, предположим, у меня есть класс Member, который имеет lastChangePasswordTime: class Member{ . . . constructor(){ this.lastChangePasswordTime=null, } } у которого lastChangePasswordTime может отсутствовать, потому что некоторые участники никогда не могут менять свои пароли. Но в...

39
Где хранятся нулевые значения или они хранятся вообще?

Я хочу узнать о нулевых значениях или нулевых ссылках. Например, у меня есть класс под названием Apple, и я создал его экземпляр. Apple myApple = new Apple("yummy"); // The data is stored in memory Затем я съел это яблоко, и теперь оно должно быть нулевым, поэтому я установил его как нулевое....

30
Должен ли я проверить возвращаемое значение вызова метода, даже если я знаю, что метод не может вернуть неверный ввод?

Мне интересно, должен ли я защищаться от возвращаемого значения вызова метода, проверяя, соответствуют ли они моим ожиданиям, даже если я знаю, что метод, который я вызываю, будет соответствовать этим ожиданиям. ДАННЫЙ User getUser(Int id) { User temp = new User(id); temp.setName("John"); return...

29
Почему большинство «общеизвестных» императивных / OO-языков допускают неконтролируемый доступ к типам, которые могут представлять значение «ничего»?

Я читал о (не) удобстве иметь nullвместо (например) Maybe. Прочитав эту статью , я убедился, что было бы намного лучше использоватьMaybe (или что-то подобное). Однако я удивлен, увидев, что все «общеизвестные» императивные или объектно-ориентированные языки программирования по-прежнему используют...

27
Как помогает выброс ArgumentNullException?

Допустим, у меня есть метод: public void DoSomething(ISomeInterface someObject) { if(someObject == null) throw new ArgumentNullException("someObject"); someObject.DoThisOrThat(); } Меня научили считать, что выбрасывание ArgumentNullExceptionявляется «правильным», но ошибка «Ссылка на объект не...

27
нулевые указатели против шаблона нулевого объекта

Атрибуция: Это выросло из связанного вопроса P.SE Мой опыт работы в C / C ++, но я много работал на Java и в настоящее время пишу на C #. Из-за моего C-фона проверка пройденных и возвращенных указателей является подержанной, но я признаю, что это искажает мою точку зрения. Недавно я увидел...

26
Если пустые значения являются злом, что следует использовать, если значение может отсутствовать по значению?

Это одно из правил, которые повторяются снова и снова, и это сбивает меня с толку. Нули - это зло, и их следует избегать всякий раз, когда это возможно . Но, но - из-за моей наивности, позвольте мне закричать - иногда значение МОЖЕТ быть значимо отсутствовать! Пожалуйста, позвольте мне спросить об...

23
C # 8 ненулевые ссылки и образец Try

Существует закономерность в классах C # на примере Dictionary.TryGetValueи int.TryParse: метод , который возвращает логическое значение , указывающее успех операции и параметра из содержащего фактический результат; если операция не удалась, для параметра out устанавливается значение null. Давайте...

22
Обнуляемые типы предпочтительнее магических чисел?

В последнее время у меня была небольшая дискуссия с коллегой. Мы специально используем C #, но это может относиться к любому языку с обнуляемыми типами. Скажем, например, у вас есть значение, которое представляет максимум. Однако это максимальное значение не является обязательным. Я утверждаю, что...

21
Что значит сделать «нулевую проверку» в C или C ++?

Я изучал C ++, и мне трудно понять ноль. В частности, в руководствах, которые я прочитал, упоминается «проверка на ноль», но я не уверен, что это значит или почему это необходимо. Что именно является нулевым? Что значит «проверить на ноль»? Мне всегда нужно проверять на ноль? Любые примеры кода...

21
Лучший способ обработать нули в Java? [закрыто]

Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 4 года назад . У меня есть код, который терпит неудачу из-за...

21
Почему нулевые ссылки избегаются, а выбрасывание исключений считается нормальным?

Я не совсем понимаю последовательное избиение нулевых ссылок некоторыми людьми из языков программирования. Что в них плохого? Если я запрашиваю доступ для чтения к файлу, который не существует, тогда я совершенно счастлив получить исключение или нулевую ссылку, и все же исключения считаются...