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


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

unless [1].empty? 

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

4 58

4 ответа:

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

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

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

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

чтобы проверить наличие элементов в массиве :
.пусто?
.подарок?

Если a={}
а.любой? .Нил?
дает вам ложное.

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

.present?
.nil?
.any?