From: matz@... (Yukihiro Matsumoto) Date: 2002-03-01T14:55:42+09:00 Subject: [ruby-dev:16157] Re: : and :: まつもと ゆきひろです In message "[ruby-dev:16156] Re: : and ::" on 02/03/01, Shin-ichiro HARA writes: |例えば | | def require_and_include(mod, file) | require file | include eval(mod.is_a?(Symbol) ? mod.id2name : mod) | end | |とか、 いや、それが原さんの持ち込んだ関連なんだってば。見かけが似て いるからという理由で必ず関連を持たせねばならないわけではない でしょう。 |autoload の mod に :: を含めることが出来ないのは、文法的な制約 |のみの理由ですか。それてもポリシーがあっての事? 少なくとも文法上の問題ではないですね。さっきも書いたように "Foo::Bar".intern は式 Foo::Bar と関係があると思ってないので、 含めることに意味がない(だって、クラス名には::を含むことがで きないから)であって、ポリシー以前だと思います。 で、autoloadがトップレベル定数に対してしか設定できないことに ついてですが、実装からみるとautoload()は定数のfallback(見つ からないときのフック)を使っているのですが、そのfallbackはトッ プレベルにしか用意していません。各クラス・モジュールにも fallbackを用意すると、実装は複雑になり、速度は低下し、なんに もよいことがありません。 ということで、ほんとはautoloadはなくしたいです。Riteではなく なるかも。 まつもと ゆきひろ /:|)