Когда использовать ноль, пустой, пустой?

Есть ли какие-либо рекомендации о том, как различать .nil?, .blank? и .empty??

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

Есть ли у кого-нибудь чит-лист на подробностях?

Ответ 1

  • nil? - проверяет, ссылается ли переменная на объект или нет

  • empty? - может использоваться для проверки различных типов объектов, таких как пустая строка "" или пустой массив []

  • blank? - проверяет наличие nil? или empty?.

Ответ 2

Здесь я сделал эту полезную таблицу со всеми случаями enter image description here

Ответ 3

  • nil? определяется на всех Objects, он возвращает только true в синглтон nil.

  • blank? также определяется для всех объектов, он возвращает true, если объект также отвечает на empty? и пуст, или является значением типа false (!object всегда true).

  • empty? определяется для нескольких объектов коллекции и true, если у него нет элементов. Он также определен на String.

обратите внимание, что blank? есть ActiveSupport, а не в Rails 1.8.

Ответ 4

Я нашел хорошее объяснение здесь:

ноль? проверяет, является ли объект ровно ноль, то есть ли это нужен только один экземпляр NilClass.

пусто? является методом некоторых объектов ответьте. Вам необходимо проверить документация для каждого случая. Для пример, и пустой массив - это тот, который не nil (это массив справа?) и не имеет элементов. Пустая строка тот, который не равен nil (это строка правильно?) и не имеет байтов, ничего.

Заготовка? метод, который вы просите, не принадлежат Ruby, это Rails расширение: http://api.rubyonrails.com/classes/Object.html#M000011.

Если вы перейдете к ссылке в конце этого сообщения, вы обнаружите, что метод blank? просто объединяет вызовы методов nil? и empty?.