ruby_parserとRuby2Rubyの宝石を使って、私はどの条件が評価されたか、その結果とパラメータが何であったかを記録するコードを書いています。できるだけシンプルにするために、ASTを少し書き直すことがあります。もちろん、結果が元のものとまったく同じであることが確かであれば、私はそれを行うことができます。Rubyにおけるif文とcase文の等価性
三つ目のドットが有効なRuby式に置き換えられたと仮定して、以下の3つのRubyスニペットが同等であると主張して正しいですか?エッジケースを見落としていますか?
case var
when foo
something
when ...
another_thing
else
something_else
end
if foo === var
something
elsif ... === var
another_thing
else
something_else
end
case
when foo === var
something
when ... === var
another_thing
else
something_else
end
良い点。このコードには、副作用のある引数では機能しないという厳しい警告が既に含まれています(ここで概要を説明したのと同じ理由で)。ただし、ここでも同様です。それに応じてドキュメントを変更しました。 – Confusion