まつもと ゆきひろです

In message "[ruby-dev:10699] Re: Class Variable"
    on 00/08/28, Shin-ichiro Hara <sinara / blade.nagaokaut.ac.jp> writes:

|||特別扱いは少ないほどいいと思いますが、「クラスメソッ
|||ドからクラス変数が見えない」というのは、ちょっと違和感があります。
|||どうなんでしょうね。
||
||私には断言できませんが、実は「クラスメソッド」という文法上の
||存在がなく、クラスの特異メソッドをクラスメソッドと呼んでいる
||だけという事実から、特別扱いしない方が良いだろうと今は思って
||ます。
|
|そうすると、クラスメソッドからクラス変数を扱うには
|
|def Foo.foo; class_eval{@@cvar}; end
|
|みたいになりますよね。

ところが、その後つらつらと考えたのですが、トップレベルの特異
メソッドに関しては、クラス/モジュールを特別扱いした方が、ルー
ルは増えるものの「驚き」が少ないのではないかという気がしてき
ました。

そこで、とりあえず実装してみたのでお試しください。
この場合、前のテストの結果は

(a) 0
(b) 0
(c) 0
(d) Error
(e) 2

になります。あるいは、さらにクラス定義内でも特異メソッドの振
る舞いは統一した方が良いかもしれません。

                                まつもと ゆきひろ /:|)