和和之间的差异||设置变量时

时间:2009-10-26 16:58:48

标签: ruby

我的印象是||or是同义词。

使用or设置变量不具有值;为什么?

>> test = nil or true
=> true
>> test
=> nil

>> test = false or true
=> true
>> test
=> false

使用||

按预期工作'
>> test = nil || true
=> true
>> test
=> true

2 个答案:

答案 0 :(得分:15)

or优先级低于=

test = nil or true

相同
(test = nil) or true

这是true,同时将test设置为nil

||的优先级高于=

test = nil || true

相同
test = (nil || true)

这是true,同时将test设置为true

答案 1 :(得分:1)

and&&之间相同。我曾经被这个问题所困扰,然后我意识到尽管and&&更具可读性,但这并不意味着它总是更合适。

>> f = true && false
=> false
>> f
=> false
>> f = true and false
=> false
>> f
=> true
>>