obj.nil? по сравнению с obj == ноль

Лучше использовать obj.nil? или obj == nil и каковы преимущества обоих?

68
задан Michael Gaskill 27 June 2016 в 21:08
поделиться

4 ответа

Лучше использовать obj.nil? или obj == nil

Это точно то же самое. Он имеет точно такие же наблюдаемые эффекты извне ( pfff ) *

и каковы преимущества и того, и другого.

Если вам нравятся микрооптимизации , то все объекты возвращают false к сообщению .nil? , за исключением самого объекта nil , в то время как объект, использующий сообщение ==, выполнит крошечное микросравнение. с другим объектом, чтобы определить, является ли он тем же самым объектом.

* См. комментарии.

48
ответ дан 24 November 2019 в 14:22
поделиться

Некоторые могут предположить, что использование .nil? медленнее, чем простое сравнение, что имеет смысл, если подумать.

Но если масштаб и скорость вас не волнуют, то .nil?, возможно, более читабельный.

.
-1
ответ дан 24 November 2019 в 14:22
поделиться

Лично я предпочитаю object.nil?, так как это может быть менее запутанным на длинных строках; однако, я также обычно использую object.blank?, если я работаю в Rails, так как это также проверяет, пустая ли переменная.

.
11
ответ дан 24 November 2019 в 14:22
поделиться

Я вообще не использую .nil?, когда ты можешь сделать:

unless obj
  // do work
end

Это на самом деле медленнее использовать .nil?, но не заметно. .nil? - это всего лишь метод проверки, равен ли этот объект нулю, кроме визуальной привлекательности и очень малого быстродействия, никакой разницы нет.

.
0
ответ дан 24 November 2019 в 14:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: