[#11357] [PATCH] an analogue of `long long' — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
まつもと ゆきひろです
えぐち@エスアンドイー です。
まつもと ゆきひろです
えぐち@エスアンドイー です。
まつもと ゆきひろです
>From: matz@zetabits.com (Yukihiro Matsumoto)
まつもと ゆきひろです
[#11440] class Character (was: Ruby I18N) — Yasushi Shoji <yashi@...>
[ruby-dev:11428] からの続きですが、threadは切りました。
高橋征義です。用語について。
At Wed, 8 Nov 2000 20:44:55 +0900,
高橋征義です。
At Thu, 9 Nov 2000 13:30:34 +0900,
まつもと ゆきひろです
[#11447] gets は secure? — Kazuhiro NISHIYAMA <zn@...>
出力がInsecureなのに入力はsecureなのでしょうか?
[#11467] debug write in regex.c? — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
[#11500] rb_to_integer/rb_to_int — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
[#11520] A problem of Socket methods on Windows — OKA Toshiyuki <oka@...>
岡と申します。
なかだです。
まつもと ゆきひろです
なかだです。
岡です。
なかだです。
なかだです。
岡です。
なかだです。
[#11569] blocking on socket? — Shugo Maeda <shugo@...>
前田です。
[#11591] object.c パッチ — Kazuhiro NISHIYAMA <zn@...>
使われてなかったnil_plusの削除とOBJ_INFECTへの変更です。
[#11611] return value of waitpid2 — Koji Arai <JCA02266@...>
新井です。
まつもと ゆきひろです
荒井です。いや、新井です。(よくあることさ)
まつもと ゆきひろです
新井です。
新井です。
[#11618] Re: class variable — "Koji Arai" <jca02266@...>
新井です
なかだです。
まつもと ゆきひろです
> まつもと ゆきひろです
まつもと ゆきひろです
まつもと ゆきひろです
新井です。
[#11641] eval too slow — Wakou Aoyama <wakou@...>
青山です。
[#11650] conflict of NODE_DREGX_ONCE — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
まつもと ゆきひろです
[#11662] IO (Re: fork problem?) — Tanaka Akira <akr@...17n.org>
In article <E140cR3-0002ls-00@ev.netlab.zetabits.co.jp>,
まつもと ゆきひろです
In article <E140fxW-0002u9-00@ev.netlab.zetabits.co.jp>,
In article <hvor93w5wb8.fsf@coulee.m17n.org>,
In article <hvoofz05uwz.fsf@coulee.m17n.org>,
まつもと ゆきひろです
新井です。
まつもと ゆきひろです
In article <E141eaC-0003w0-00@ev.netlab.zetabits.co.jp>,
まつもと ゆきひろです
In article <E142ZqF-0004rX-00@ev.netlab.zetabits.co.jp>,
まつもと ゆきひろです
In article <E143Zem-000271-00@ev.netlab.zetabits.co.jp>,
まつもと ゆきひろです
In article <E143amj-00028V-00@ev.netlab.zetabits.co.jp>,
[ruby-dev:11635] Re: class variable
まつもと ゆきひろです
In message "[ruby-dev:11631] Re: class variable"
on 00/11/22, Koji Arai <JCA02266@nifty.ne.jp> writes:
|で確認しました。つまり、
|
|・特異クラスのコンテキストでのクラス変数は
| (A) 特異クラスのインスタンス(と言っていいの?)がクラスならそのクラス変数
| (A') そうでなければ特異クラスのクラス変数
|
|・特異クラスのメソッド定義のコンテキストでのクラス変数は
| (B) 特異クラスのインスタンスがクラスならそのクラス変数
| (B') そうでなければそのオブジェクトのクラスのクラス変数
|
|ですか?
そうです。正確には「クラスまたはモジュールならば」ですが。
|Foo.foo
|foo.foo
|
|複雑さに追い打ちをかけるようにコンテキストで参照できるクラス
|変数とclass_variablesの出力が異なりますね。仕方ないんだけど。
いや、
|class << Foo
| # (A)
| @@bar = 3 # Fooのクラス変数
| p class_variables # => [@@klass] 特異クラスのクラス変数
でのclass_variablesの出力は不適切でしょう。この場所では
@@klassは参照できないのですから。
せっかく特異クラス定義で特別扱いをするようになったのですから、
class_variablesの出力もそれに従うべきです。これはすぐに修正
しましょう。
|class << foo
| # (A')
| @@baz = 4 # 特異クラスのクラス変数
|えっと、(A')はFooのクラス変数が良いように思うのです。
|
|クラス変数はそのクラスのインスタンス間での情報共有が目的だと
|思うのですが、特異クラスのクラス変数にその役割は持てないので
|はないでしょうか?
私はそうは思いません。
* 特異クラス定義によってクラス変数が増えるのは良くない。
Fooのインスタンスで共有されるクラス変数が欲しければ、そ
のクラスで初期化が行われているべきである。
* 情報共有の範囲は、その閉じた範囲で行われるべきである。よっ
て、特異クラス定義ではインスタンス変数と同じようにしか働
かないとしても、それはそれである。
という理由からです。
|というメッセージから「特異クラス」でなく「仮想クラス」と言っ
|た方が良かったりしますか?で、「String」の部分をインスタンス
|というのはやっぱり変でしたね。なんて呼べば。。。「特異クラス
|で定義されるメソッドのレシーバ?」(長いよ)
個人的には、「特異クラス定義」は、「(特異クラス)定義」ではな
く「特異(クラス定義)」で、その定義されるクラスそのものは、仮
想的なクラスに過ぎないので、virtual classと形容しました。こ
れは「仮想クラス」というひとつの用語ではなく、「仮想的なクラ
ス」という一般的な形容句だと思ってます。
これは、現在の実装でオブジェクトには見えない「特異クラス」が
くっついているというのは実装上の都合で、そうでない実装があっ
ても構わないというニュアンスが含まれています。
より良い用語(群)があれば、それについても考えてみたいです。
まつもと ゆきひろ /:|)