Ruby の #instance_eval と #instance_exec の違い

#instance_eval は渡されたブロックをレシーバのインスタンス元で実行するメソッドです。 なので例えば次のようにしてインスタンス変数をブロック内から参照する事ができます。 class X def initialize @name = "homu" end end x = X.new p x.instance_eval { @name } # => "homu" また、ブロックであればいいので次のよう…