在Ruby中,是val还是val.nil?相同?

时间:2014-11-24 09:50:00

标签: ruby

作为标题,以下两个陈述相同:

if val

if !val.nil?

2 个答案:

答案 0 :(得分:2)

没有

2.0.0-p481 :001 > val = false
 => false 
2.0.0-p481 :002 > val.nil?
 => false

在红宝石中,nilfalse都是假的,但只有nil为零。

答案 1 :(得分:0)

不,两者都不同。这是一个例子

irb(main):001:0> val = 10
=> 10
irb(main):002:0> if val
irb(main):003:1>   puts"kranthi"
irb(main):004:1> end
kranthi
=> nil
irb(main):005:0> val = nil
=> nil
irb(main):006:0> if val
irb(main):007:1>   puts"kranthi"
irb(main):008:1> end
=> nil
irb(main):009:0> val = "test"
=> "test"
irb(main):010:0> if val
irb(main):011:1>  puts "kranthi"
irb(main):012:1> end
kranthi
=> nil