false
和nil
评估为Ruby
中的 false 。还要别的吗?请提供官方/权威参考文献的链接。
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
答案 0 :(得分:22)
false
和nil
是唯一的:
http://www.ruby-doc.org/core-2.1.1/FalseClass.html
Rails提供present?
,其中还包括空字符串和空数组:http://api.rubyonrails.org/classes/Object.html#method-i-present-3F
答案 1 :(得分:7)
答案 2 :(得分:2)
Ruby中唯一的false
- y值是false
和nil
,正如David Flanagan和Yukihiro Matsumoto所着的“Ruby编程语言”一书所证实的那样。 > Matz):
谓词通常返回布尔值
true
或false
中的一个,但这不是必需的,因为false
或nil
以外的任何值都可以需要布尔值时true
。 (例如,Numeric
方法nonzero?
如果调用的数字为零则返回nil
,否则返回该数字。)
(强调我的)
这句话可以在本书的page 180找到。
答案 3 :(得分:1)
我只能同意,nil
和false
确实是唯一两个在Ruby中评估为 false 的值。我只是想指出另一个有用的资源:
True and False vs. "Truthy" and "Falsey" (or "Falsy") in Ruby, Python, and JavaScript