[#30408] Ruby 1.8.6 preview2 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.6 preview2 をリリースしました。

20 messages 2007/02/24
[#30414] fail to autoload at $SAFE==4 (Re: Ruby 1.8.6 preview2 has been released) — Hidetoshi NAGAI <nagai@...> 2007/02/25

永井@知能.九工大です.

[#30418] Re: fail to autoload at $SAFE==4 (Re: Ruby 1.8.6 preview2 has been released) — Nobuyoshi Nakada <nobu@...> 2007/02/25

なかだです。

[ruby-dev:30382] Re: class local instance variable

From: "Makoto Inada" <mak@...>
Date: 2007-02-18 03:23:18 UTC
List: ruby-dev #30382
稲田です。

> でも、ここではMerongクラスのローカルインスタンス変数にアクセスできるというのが一般的な期待なんでしょうか。

私はそう期待します。プログラムを書いていて instance_eval
を使うときは大抵、既に存在するオブジェクトを直接操作/参照するつもりで書いているので、

1. 特異クラスの存在を(たとえ知っていても)意識していない、
2. そのオブジェクトのインスタンス変数にはすべてアクセスできると思ってしまう、

というふうに考えています。この文脈から見れば、(暗黙で作られた)特異クラスがあるためにオブジェクトの元クラスのローカルインスタンス変数にアクセスできないというのは、唐突な感じがします。
instance_eval でなくてオブジェクトに特異メソッドを追加する場合でも、同じように感じます。

これが、明示的にサブクラスを作っていれば、「オブジェクトにはスーパークラスで定義されたアンタッチャブルな部分がある」で簡単に納得できるんですが。

In This Thread