[ruby-list:45875] ruby1.8 と ruby1.9 の instance_eval の挙動の違いについて

From: kohno kazuyuki <kkohno@...>
Date: 2009-02-17 16:11:57 UTC
List: ruby-list #45875
こんにちは。
河野 (万葉) と申します。

ruby1.8 と ruby1.9 で Object#instance_eval の挙動が違うケースがあるようです。
リファレンスマニュアルには、instance_eval の引数にブロックを渡した場合、
「オブジェクト自身をブロック引数とするブロックを評価してその結果を返します」
(http://doc.loveruby.net/refm/api/view/method/Object/i/instance_eval)
とありますが、ruby1.9 ではそうはなりません。
ブロック引数を参照しても nil が返ってきます。

これはバグでしょうか?
わかる方いたら教えてください。

以下のコードで検証しました。

'hoge'.instance_eval do |s|
  p s
end

ruby1.8 では "hoge" と出力され、ruby1.9 では nil と出力されます。

----
jugyo
http://jugyo.org/blog/
http://github.com/jugyo/

In This Thread

Prev Next