[#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:3911] Re: class variable

From: shugo@... (前田 修吾 / maeda shugo)
Date: 1997-08-28 12:25:16 UTC
List: ruby-list #3911
前田です。

In message "[ruby-list:3902] Re: class variable"
Yukihiro Matsumoto <matz@netlab.co.jp> wrote:

||[その1]
||  クラス変数はないのですか。
|
|ありません.定数を使ってエミュレートできます.
|
|  class Foo
|    F = [0]
|    def foo
|      F[0] += 1
|      print F[0], "\n"
|    end
|  end

前僕がした質問ですね(^^;

class << Foo
   attr :foo, TRUE
end

っていう手もありますね。

class Module
   def class_attr(name, writable)
      if name.is_a? Fixnum
	 name = name.id2name
      end
      if writable
	 writable = "TRUE"
      else
	 writable = "FALSE"
      end
      eval %{
	 class << self
	    attr :#{name}, #{writable}
	 end
      }
   end
end

class Foo
   class_attr :foo, TRUE
end

とか。

||  class Foo
||    @default_x = 123
||    def initialize
||      @x = @default_x
||    end
||    def print_x
||      print @x
||    end
||  end
||
||  foo = Foo.new
||  foo.print_x
||  # なんで 123 でなくて nil になるの?

上のを使えば

class Foo
   @default_x = 123
   class_attr :default_x
   def initialize
      @x = type.default_x
      # 1.0なら eval(type).default_xですね。
      # Foo.default_xでもいいかな。
   end
   def print_x
      print @x
   end
end

とすれば期待どおりの動作になるのではないでしょうか?   

|# まとめられたら FAQ に追加して下さいませんか? > 前田さん

了解しました。

-- 
前田 修吾

In This Thread