| (C)2001, `Rubyist!' Project Team. |
|
2002/9/11 (Wed)■[ML]private variables[ruby-talk:49882]でGuy Decouxさんより、 Ruby 1.6.7でプライベートインスタンス変数を実現するパッチが投げられています。 アクセスのコストが通常の変数へのアクセスよりも大きかったり(?違うかも)、 フラグを使いきってしまったりしているようですが、 動作例を見る限りでは、Marshalも含めて(!) ちゃんと動いているっぽいです。 さすがGuyさん、といったところでしょうか。 もっとも、「@_foo」という形の変数をプライベートインスタンス変数に 使うことになるかどうかは、まだ明確にはされていないようです。 (Maki) ■[ML]Module#const_missing メソッド[ruby-core:441]にてJan Arne Petersenさんより、 Module#const_missing という新しいメソッドを追加する パッチが投げられています。 このメソッドは、ちょうどObject#method_missingが未定義のメソッドが 呼び出されたときに実行されるのと同様に、未定義の定数が呼ばれたときに 実行されるフックになります。 Anders Bengtssonさんによれば、すでにこのメソッドはJRubyに 実装済みだそうで、上記パッチはこれのC版だとのことです([ruby-core:445])。 中田さんはこれをautoloadを一般化するものに相当すると指摘し([ruby-core:])、 Jan さんはそれをうけ、autoloadではあらかじめ指定された定数に対して動作するのと、 require以外実行できない点に問題があると答えています([ruby-core:448])。 (Maki) |