Каков противоположный метод Array.пути? или [] пуст? в рубине

Я понимаю, что могу делать

unless [1].empty? 

Но мне интересно, есть ли способ?

Ответ 1

Как и #any?, как упоминалось в davidrac, ActiveSupport #present?, который больше похож на тест правды на других языках. Для nil, false, '', {}, [] и т.д. Он возвращает false; для всего остального верно (включая 0, интересно).

Ответ 2

Вы можете использовать [1].any?, который фактически определен в Enumerable

Обратите внимание, что это не сработает, если ваш массив содержит только нулевые или ложные значения (спасибо за комментарий @InternetSeriousBusiness).

Ответ 3

[nil].any?
=> false
[nil].any? {|something| true}
=> true
[].any? {|something| true}
=> false
[false, false].any? {|something| true}
=> true
[nil, 'g'].any? {|something| true}
=> true

Ответ 4

Проверить элементы в массиве:
 .empty?
 .present?

если a = {}
a.any?.nil?
приведет к ложному.

Чтобы проверить, имеет ли поле значение, отличное от нуля:

.present?
.nil?
.any?