while
バージョンが式を評価する方法に注意してください。ただし、if
バージョンは評価しません。
begin
puts 'hi'
1
end while false
# => hi
# => nil
begin
puts 'hi'
1
end if false
# => nil
しかし、begin
...なしで式を使用するend
と、熱心に評価されません。
puts 'hi' while false
# => nil
この一見矛盾する理由はありますか?