Ruby の and/&&/= キーワードについて質問があります。
ruby のドキュメントによると、前述のキーワードの優先順位は (1)&&、(2)=、(3)and です。
私が書いたコードのこのスニペットがあります:
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 に評価されますか?