[#11357] [PATCH] an analogue of `long long' — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

18 messages 2000/11/01
[#11358] Re: [PATCH] an analogue of `long long' — matz@... (Yukihiro Matsumoto) 2000/11/01

まつもと ゆきひろです

[#11364] Re: [PATCH] an analogue of `long long' — EGUCHI Osamu <eguchi@...> 2000/11/02

えぐち@エスアンドイー です。

[#11440] class Character (was: Ruby I18N) — Yasushi Shoji <yashi@...>

[ruby-dev:11428] からの続きですが、threadは切りました。

14 messages 2000/11/08
[#11442] Re: class Character (was: Ruby I18N) — TAKAHASHI Masayoshi <maki@...> 2000/11/08

高橋征義です。用語について。

[#11443] Re: class Character (was: Ruby I18N) — Yasushi Shoji <yashi@...> 2000/11/08

At Wed, 8 Nov 2000 20:44:55 +0900,

[#11520] A problem of Socket methods on Windows — OKA Toshiyuki <oka@...>

岡と申します。

22 messages 2000/11/15
[#11523] Re: A problem of Socket methods on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/15

なかだです。

[#11528] Re: A problem of Socket methods on Windows — matz@... (Yukihiro Matsumoto) 2000/11/15

まつもと ゆきひろです

[#11532] Re: A problem of Socket methods on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/15

なかだです。

[#11534] Re: A problem of Socket methods on Windows — OKA Toshiyuki <oka@...> 2000/11/15

岡です。

[#11535] Re: A problem of Socket methods on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/15

なかだです。

[#11538] Re: A problem of Socket methods on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/15

なかだです。

[#11662] IO (Re: fork problem?) — Tanaka Akira <akr@...17n.org>

In article <E140cR3-0002ls-00@ev.netlab.zetabits.co.jp>,

22 messages 2000/11/28
[#11663] Re: IO (Re: fork problem?) — matz@... (Yukihiro Matsumoto) 2000/11/28

まつもと ゆきひろです

[#11664] Re: IO (Re: fork problem?) — Tanaka Akira <akr@...17n.org> 2000/11/28

In article <E140fxW-0002u9-00@ev.netlab.zetabits.co.jp>,

[#11665] Re: IO (Re: fork problem?) — Tanaka Akira <akr@...17n.org> 2000/11/28

In article <hvor93w5wb8.fsf@coulee.m17n.org>,

[#11669] Re: IO (Re: fork problem?) — Tanaka Akira <akr@...17n.org> 2000/11/29

In article <hvoofz05uwz.fsf@coulee.m17n.org>,

[#11672] Re: IO (Re: fork problem?) — matz@... (Yukihiro Matsumoto) 2000/11/29

まつもと ゆきひろです

[#11675] Re: IO (Re: fork problem?) — Koji Arai <JCA02266@...> 2000/11/30

新井です。

[#11677] Re: IO (Re: fork problem?) — matz@... (Yukihiro Matsumoto) 2000/12/01

まつもと ゆきひろです

[ruby-dev:11631] Re: class variable

From: Koji Arai <JCA02266@...>
Date: 2000-11-21 19:07:16 UTC
List: ruby-dev #11631
新井です。

> まつもと ゆきひろです

> ||これは「特異クラスはクラス変数を持てない」というルールがある
> ||ということでしょうか?
> |
> |むむむ、ちょっと自分でも混乱してきたの頭を冷やして考えてみま
> |す。確かにクラス変数は難しいです。
> 
> というわけで、できたみたいです。
> CVSで確認してみてください。

ruby 1.6.2 (2000-11-21) [i586-linux] 

で確認しました。つまり、

・特異クラスのコンテキストでのクラス変数は
  (A) 特異クラスのインスタンス(と言っていいの?)がクラスならそのクラス変数
  (A') そうでなければ特異クラスのクラス変数

・特異クラスのメソッド定義のコンテキストでのクラス変数は
  (B) 特異クラスのインスタンスがクラスならそのクラス変数
  (B') そうでなければそのオブジェクトのクラスのクラス変数

ですか?

class Class
  @@klass = 1
end

class Foo
  @@foo = 2
end

class << Foo
  # (A)
  @@bar = 3		# Fooのクラス変数
  p class_variables	# => [@@klass]		特異クラスのクラス変数
  def foo
    # (B)
    p class_variables	# => [@@bar, @@foo]	Fooのクラス変数
    p [@@foo, @@bar]	# => [2, 3]
  end
end

foo = Foo.new

class << foo
  # (A')
  @@baz = 4		# 特異クラスのクラス変数
  p class_variables	# => [@@baz, @@foo]	特異クラスのクラス変数
  def foo
    # (B')
    p type.class_variables	# => [@@bar, @@foo]	Fooのクラス変数
    p [@@foo, @@bar, @@baz]	# => [2, 3, 4]
  end
end

Foo.foo
foo.foo

複雑さに追い打ちをかけるようにコンテキストで参照できるクラス
変数とclass_variablesの出力が異なりますね。仕方ないんだけど。

えっと、(A')はFooのクラス変数が良いように思うのです。

クラス変数はそのクラスのインスタンス間での情報共有が目的だと
思うのですが、特異クラスのクラス変数にその役割は持てないので
はないでしょうか?

以下、用語の話

class <<String
  p self.new
end

-:2:in `new': can't create instance of virtual class (TypeError)
	from -:2

というメッセージから「特異クラス」でなく「仮想クラス」と言っ
た方が良かったりしますか?で、「String」の部分をインスタンス
というのはやっぱり変でしたね。なんて呼べば。。。「特異クラス
で定義されるメソッドのレシーバ?」(長いよ)

--
新井康司 (Koji Arai)

In This Thread