Что оценивает false в Ruby?

false и nil оцените false в Ruby. Что-нибудь еще? Просьба предоставить ссылки на официальные/авторитетные ссылки.

2.0.0p247 :001 > if true ; puts 'TRUE' ; else puts 'FALSE' ; end
TRUE

2.0.0p247 :002 > if false ; puts 'TRUE' ; else puts 'FALSE' ; end
FALSE

2.0.0p247 :003 > if nil ; puts 'TRUE' ; else puts 'FALSE' ; end
FALSE

2.0.0p247 :004 > if 0 ; puts 'TRUE' ; else puts 'FALSE' ; end
TRUE

2.0.0p247 :005 > if [] ; puts 'TRUE' ; else puts 'FALSE' ; end
TRUE

2.0.0p247 :006 > if {} ; puts 'TRUE' ; else puts 'FALSE' ; end
TRUE

2.0.0p247 :007 > if '' ; puts 'TRUE' ; else puts 'FALSE' ; end
(irb):616: warning: string literal in condition
TRUE

Ответ 2

Вы только что нашли их все

В Ruby false и nil являются "ложными", а все остальные значения "правдивы"

как сказал Иегуда Кац в своем блоге в 2009 году

Ответ 3

Единственными значениями false -y в Ruby являются false и nil, о чем свидетельствует книга "Язык программирования Ruby" Дэвида Фланагана и Юкихиро Мацумото (Matz):

Предикаты обычно возвращают одно из булевых значений true или false, но это не требуется, поскольку любое значение, отличное от false или nil, работает как true, когда булевское значение равно требуется. (Метод Numeric nonzero?, например, возвращает nil, если номер, на который он вызывается, равен нулю, и просто возвращает число в противном случае.)

(акцент мой)

Эта цитата приведена в странице 180 этой книги.