У меня есть вопрос относительно ключевых слов и /&/= в 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 [ Почему?]
По какой-то причине использование && заставляет а и b оценивать до 4?
