Ответ 1
-
nil?
- проверяет, ссылается ли переменная на объект или нет -
empty?
- может использоваться для проверки различных типов объектов, таких как пустая строка "" или пустой массив [] -
blank?
- проверяет наличиеnil?
илиempty?
.
Есть ли какие-либо рекомендации о том, как различать .nil?
, .blank?
и .empty?
?
Я обычно смущен тем, когда использовать их в своем приложении, поскольку все они, похоже, означают одно и то же, но имеют разные значения.
Есть ли у кого-нибудь чит-лист на подробностях?
nil?
- проверяет, ссылается ли переменная на объект или нет
empty?
- может использоваться для проверки различных типов объектов, таких как пустая строка "" или пустой массив []
blank?
- проверяет наличие nil?
или empty?
.
Здесь я сделал эту полезную таблицу со всеми случаями
nil?
определяется на всех Objects
, он возвращает только true
в синглтон nil
.
blank?
также определяется для всех объектов, он возвращает true
, если объект также отвечает на empty?
и пуст, или является значением типа false
(!object
всегда true
).
empty?
определяется для нескольких объектов коллекции и true
, если у него нет элементов. Он также определен на String
.
обратите внимание, что blank?
есть ActiveSupport
, а не в Rails 1.8.
Я нашел хорошее объяснение здесь:
ноль? проверяет, является ли объект ровно ноль, то есть ли это нужен только один экземпляр NilClass.
пусто? является методом некоторых объектов ответьте. Вам необходимо проверить документация для каждого случая. Для пример, и пустой массив - это тот, который не nil (это массив справа?) и не имеет элементов. Пустая строка тот, который не равен nil (это строка правильно?) и не имеет байтов, ничего.
Заготовка? метод, который вы просите, не принадлежат Ruby, это Rails расширение: http://api.rubyonrails.com/classes/Object.html#M000011.
Если вы перейдете к ссылке в конце этого сообщения, вы обнаружите, что метод blank?
просто объединяет вызовы методов nil?
и empty?
.