使用&&具有非布尔操作数的运算符

时间:2013-11-21 17:11:46

标签: ruby

下面的代码是什么意思,为什么有人会这样写呢?

a = 1
b = 2

if a && b != a 
   ...
end

之间的区别是什么?
if a != b
   ...
end

2 个答案:

答案 0 :(得分:2)

a != b只检查ab是否不相等,

其中a && b != a检查a的真值是True ab是否不相等

另一种表示方式是:

if a
    if b != a
        #Do something

答案 1 :(得分:1)

if a检查a是否真实(nilfalse):

a = 'a'
b = 'b'
if a && b != a
  puts "I will be printed"
end

a = false # or nil
b = 'b'
if a && b != a
  puts "I will NOT be printed"
end