Есть ли || оператор оценивает второй аргумент, даже если первый аргумент истинен?

Я пытаюсь вычислить выражение (a = 10) || (rr = 20) , в то время как переменная rr не определена

, поэтому набрав rr в консоли ruby ​​перед вычислением предыдущего выражения, возвращается

rr
NameError: undefined local variable or method `rr' for main:Object
from (irb):1
from :0

Когда я пишу выражение (a = 10) || (rr = 20) он возвращает 10, и когда я пишу rr после, он говорит nil

(a=10) || (rr=20)
rr  # => nil

, почему это происходит? Не следует определять rr, только если второй аргумент || оценивается оператор, что никогда не должно основываться на документации?

10
задан Mahmoud Khaled 8 February 2012 в 10:08
поделиться