Deutsch

Можно ли возвращать null из функции?

11.04.24 08:57
Re: Можно ли возвращать null из функции?
 
Программист коренной житель
в ответ AlexNek 10.04.24 18:06
Варианты есть? При каких случаях что лучше использовать?

Так с ходу сложно придумать нормальный пример.

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


Например, если у тебя есть фабрика, которая создает объект для доступа к БД, то, в случае если фабрика по какой-то причине не может создать этот объект, нужно возвращать null, т.к. без БД жизни у программы нет :) И чем раньше мы пробросим ошибку наверх, тем лучше.

Если же null - валидный ответ системы, то null объект может оказаться очень полезным. Например, ты ищешь клиента по фамилии. Вбиваешь фамилию, клацаешь "Дальше". Если клиентов с такой фамилией несколько, то появляется список с выбором. Если такой клиент один, то сразу открываются данные клиента. Если клиента нет, то сразу открывается страница для ввода нового клиента. При таком юз-кейсе имеет смысл сделать null объект.


Собственно говоря, объект с дефолтным состоянием по сути и является null объектом. И такой подход используется довольно часто - создаем объект, после чего "подправляем" пару (из 100500) полей и в бой :)

 

Перейти на