我的印象是||
和or
是同义词。
使用or
设置变量不具有值;为什么?
>> test = nil or true
=> true
>> test
=> nil
>> test = false or true
=> true
>> test
=> false
使用||
>> test = nil || true
=> true
>> test
=> true
答案 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
>>