Приоритет оператора для And / && в Ruby [дубликат]
На этот вопрос уже есть ответ здесь:
Разница между «и» и && в Ruby? 7 ответовУ меня есть вопрос относительно ключевых слов и / && / = в Ruby.
Документы ruby говорят, что приоритет для упомянутых ключевых слов: (1) &&, (2) =, (3) и.
У меня есть этот фрагмент кода, который я написал:
def f(n)
n
end
if a = f(2) and b = f(4) then
puts "1) #{a} #{b}"
end
if a = f(2) && b = f(4) then
puts "2) #{a} #{b}"
end
Выход:
1) 2 4 [Ожидается]
2) 4 4 [Почему?]
По какой-то причине использование && приводит к тому, что значения a и b равны 4?