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

Cor*_*ook 6 ruby

我的印象是||并且or是同义词.

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

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

>> test = false or true
=> true
>> test
=> false
Run Code Online (Sandbox Code Playgroud)

与'预期'一起工作 ||

>> test = nil || true
=> true
>> test
=> true
Run Code Online (Sandbox Code Playgroud)

Jon*_*erg 15

or具有较低的优先级=.

test = nil or true
Run Code Online (Sandbox Code Playgroud)

是相同的

(test = nil) or true
Run Code Online (Sandbox Code Playgroud)

这是true设置testnil.

||优先级高于=.

test = nil || true
Run Code Online (Sandbox Code Playgroud)

是相同的

test = (nil || true)
Run Code Online (Sandbox Code Playgroud)

这是true设置testtrue.

  • `||'不仅具有非常高和`或'非常低的优先级,而且`和`和`或`具有*相同*优先级,而`||`和`&&`具有不同的优先级.通常,在条件表达式中,始终使用运算符表单,因为它们具有您实际期望它们具有的相对优先级.使用`和`和`或'仅用于控制流,你实际上*希望*"内部"表达式更紧密地绑定.类似于`test = blah.get_records或puts'没有找到记录.'` (2认同)