调用Fixnum相等性的方法是什么?

时间:2011-09-23 15:21:20

标签: ruby

我知道在Ruby中,所有数字(包括零)在条件语句中使用时都会计算为true。但是,调用什么方法来执行此评估(参见下面的例2)?我认为它可能是==运算符,但不是因为它们会返回相反的结果。

  • 示例1:等式方法计算零到假

    >> puts "0 is " << (0 == true ? "true" : "false")
    0 is false
    
  • 示例2:单独的零值评估为真,因为它不是零

    >> puts "0 is " << (0 ? "true" : "false") 
    0 is true
    

2 个答案:

答案 0 :(得分:1)

在与对象true相等的意义上,它们不会“评估为真”。除了nilfalse之外的所有对象都是,当它们是条件的值时,它们被视为逻辑真实。这个想法有时表达为 truthy

所以,是的,测试相等性使用==运算符。由于同样的原因,029是真实的,因此"Hi, I'm a string"nil不是false

答案 1 :(得分:0)

0 == true # evaluates to false => ergo "false"

VS

0 # bare zero before the ? is evaluated using ruby truthiness and since it is not false or nil, "true" is returned