[#3567] Nil is a subclass of Object? — shugo@... (maeda shugo)

前田です。

26 messages 1997/08/02
[#3570] Re: Nil is a subclass of Object? — matz@... (Yukihiro Matsumoto) 1997/08/03

まつもと ゆきひろです

[#3572] Re: Nil is a subclass of Object? — keiju@... (石塚圭樹 ) 1997/08/03

けいじゅ@日本ラショナルです.

[#3573] Re: Nil is a subclass of Object? — matz@... (Yukihiro Matsumoto) 1997/08/03

まつもと ゆきひろです

[#3715] may i make a ruby.rpm? — Shoichi OZAWA <ozawa@...>

こんにちは 小澤@日立 です。

15 messages 1997/08/20

[#3736] module for GNU Readline Library — shugo@... (前田 修吾 / maeda shugo)

前田です。

12 messages 1997/08/20

[#3833] [Bug] Regexp.quote — shugo@... (前田 修吾 / maeda shugo)

前田です。

25 messages 1997/08/26
[#3836] BEGIN and END — Masaki Suketa <suke@...> 1997/08/26

助田です。

[#3837] Re: BEGIN and END — matz@... (Yukihiro Matsumoto) 1997/08/27

まつもと ゆきひろです

[#3842] Re: BEGIN and END — keiju@... (石塚圭樹 ) 1997/08/27

けいじゅ@日本ラショナルです.

[#3839] Re: SyslogSendmail class — takagi@... (TAKAGI Hiromitsu)

> そうですね.本当はこーゆーのが ruby-list の本来の形ですね.

18 messages 1997/08/27
[#3840] Re: SyslogSendmail class — matz@... (Yukihiro Matsumoto) 1997/08/27

まつもと ゆきひろです

[#3852] Re: SyslogSendmail class — keiju@... (石塚圭樹 ) 1997/08/27

けいじゅ@日本ラショナルソフトウェアです.

[#3909] Object#id <=> Fixnum#id2object ? (Re: SyslogSendmail class) — shugo@... (前田 修吾 / maeda shugo) 1997/08/28

前田です。

[#3869] Re: SyslogSendmail class — takagi@... (TAKAGI Hiromitsu)

> Moduleのところに書いてあるんですねえ.こういうノウハウを記述

15 messages 1997/08/27
[#3870] Re: SyslogSendmail class — matz@... (Yukihiro Matsumoto) 1997/08/27

まつもと ゆきひろです

[#3906] document for beginner — toyofuku@...

豊福@パパイヤです。

21 messages 1997/08/28
[#3917] Re: document for beginner — Kikutani Makoto <kikutani@...> 1997/08/29

きくたにです。

[#3925] Re: document for beginner — Masaki Suketa <suke@...> 1997/08/29

助田です

[#3926] Curses (Re: document for beginner) — Kikutani Makoto <kikutani@...> 1997/08/29

Fri, Aug 29, 1997 at 12:54:15PM +0900 において

[#3933] Re: ruby constants — toyofuku@...

豊福@パパイヤです。

16 messages 1997/08/29
[#3934] Re: ruby constants — matz@... (Yukihiro Matsumoto) 1997/08/29

まつもと ゆきひろです

[#3939] Re: ruby constants — WATANABE Hirofumi <watanabe@...> 1997/08/29

わたなべです.

[ruby-list:3927] Re: class variable

From: keiju@... (Keiju ISHITSUKA)
Date: 1997-08-29 05:05:36 UTC
List: ruby-list #3927
けいじゅ@日本ラショナルソフトウェアです.

In [ruby-list :03923 ] the message: "[ruby-list:3923] class variable
", on Aug/29 12:28(JST) toyofuku@juice.or.jp writes:

>  豊福@パパイヤです。

>> Smalltalkには, クラス変数とクラスのインスタンス変数はあります. ちなみ
>> に, Smalltalkでも, rubyと同様にクラスのインスタンス変数はインスタンス
>> からは参照できません.
>
>  Smalltalk のクラス変数とクラスのインスタンス
>変数はどう違う/どう使いわけるのですか。

クラス変数は, そのクラス自身とそのサブクラスとそれらのインスタンスで共
有する変数です. rubyのクラス定数の変数版ですね. 通常大文字から始まりま
す.

クラスのインスタンス変数は, そのクラスだけに存在する内部変数で, 通常の
オブジェクトのインスタンス変数と同じもので, 他のオブジェクトから直接見
ることはできません. 

>  私が「クラス変数」と呼んでいたのがどちらか
>わかりませんが、インスタンスから見えないもの
>だったような気もしてきました。インスタンスに
>見せるときは引数で渡してたような。ruby で書く
>と次のような感じです。
>
>  class Foo
>    @default_x = 123
>    def Foo.new
>      aFoo = super
>      aFoo.init(@default_x)
>      return aFoo
>    end
>    def init(default_x)
>      @x = default_x
>    end
>    def print_x
>      print @x
>    end
>  end
>
>  foo = Foo.new
>  foo.print_x
>
>と書いてみたら 123 と出ました。このプログラム
>でもいいのかな?

これは...

オブジェクト生成時にデフォルト値を設定したいんですね. で, デフォルト値
は定数でなく変数にしたいと... こういうことは, クラス定数を直接利用して
も実現できませんね.

あと, rubyですと, 上記の実装でも良いと思いますが, デフォルト値が他にも
たくさんある場合などは:

  class Foo
    DEFAULTS = {}
    DEFAULTS[:x] = 123
    DEFAULTS[:y] = ...
    ...
    def Foo.new
      aFoo = super
      aFoo.init
      return aFoo
    end
   def init
      @x = Defaults[:x]
      @y = Defaults[:y]
      ...
   end
  end

という実装もあると思いますし, さらに, デフォルト値があまり変わらないよ
うでしたら.

  class Foo
    DEFAULTS = {}
    DEFAULTS[:x] = 123
    DEFAULTS[:y] = ...
    ...
    def Foo.new
      aFoo = super
      aFoo.init
      return aFoo
    end
    def x
      return @x if defined? @x
      DEFALTS[:x]
    end
    attr :x, TRUE
  end

今な感じの実装もありますね.

__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju@bc.mbn.or.jp <<---

In This Thread

Prev Next