From: Koji Arai Date: 2000-02-16T01:51:02+09:00 Subject: [ruby-dev:9225] class variable (Re: bang method returns string always) 新井です。 # Subject 変えました。 >>> From: matz@netlab.co.jp (Yukihiro Matsumoto) >>> Date: 16 Feb 2000 00:38:29 +0900 >>> Subject: [ruby-dev:9224] Re: bang method returns string always > まつもと ゆきひろです > |変数とは異なるのだと昔々説明があったような気がします。 > > あと、インスタンスから参照できない点もね。 あっ、「昔の説明」は、クラス変数とクラス定数の違いを言ってた のかも。で、今は定数は継承されるようになったから、名前の通り、 「変数」と「定数」の違いでしかなくなるわけですね。 > Foo::Bar > > 形式の定数参照は、そのクラス(モジュール)で定義されている定数 > しか参照できなかったのですが、それはやはり不便という理由でスー > パークラスで定義されている定数も参照できるように変更しました。 > > ですから String::ARGV も参照可能です。なんか気持ち悪いのは確 > かなんですが、良いアイディアがありますか? トップレベルの定数をprivate method ならぬ private constants として扱う? ・定数をプライベート宣言すると クラス::定数 形式の呼出しを禁止 ・Module#constants は、プライベートな定数を表示しない で要件を満たすのかなぁ。。。 クラスに定義した定数が"クラス::"付きでしか見れなくなるような。 いやメソッドが大丈夫なんだから大丈夫か?。ちょっと混乱してき たので、他の人にパス:-)。 > で、それとは別にprefixを導入してクラス変数(共有変数って名前 > にするかは未定)を導入しようと考えてます。 解説ありがとうございました。 もしかして既にどっかで説明済みでした? -- 新井康司 (Koji Arai)