[#30426] CGI でグラフを描くときにお勧めのライブラリは? — 堀川 久 <vzw00011@...>

こんにちは。

12 messages 2001/07/01

[#30453] syntax check without execution? — Tanaka Akira <akr@...17n.org>

最近、eRuby のまねごとをしていて、そのなかで Ruby のコードを生成してい

16 messages 2001/07/04
[#30455] Re: syntax check without execution? — matz@... (Yukihiro Matsumoto) 2001/07/04

まつもと ゆきひろです

[#30479] Object#dup — "Shin'ya Adzumi" <adzumi@...>

あづみです。

20 messages 2001/07/05

[#30512] open errno EALREADY triggerd — "Inoue" <inoue@...>

井上です。

16 messages 2001/07/08

[#30514] Ruby module frame work? — Takahiro Kambe <taca@...>

こんにちは。

16 messages 2001/07/09
[#30515] Re: Ruby module frame work? — matz@... (Yukihiro Matsumoto) 2001/07/09

まつもと ゆきひろです

[#30529] InterBase を使用したい — "YOUJI KUROKAWA" <CQE10242@...>

環境

22 messages 2001/07/09

[#30530] Question about script on the book "Ruby nyuumon" — NAWATE Masahiko <agul@...>

縄手@松江と言います。

17 messages 2001/07/09
[#30531] Re: Question about script on the book "Ruby nyuumon" — rubikitch <rubikitch@...> 2001/07/09

From: NAWATE Masahiko <agul@mag.shimane-u.ac.jp>

[#30533] Re: Question about script on the book "Ruby nyuumon" — NAWATE Masahiko <agul@...> 2001/07/09

縄手@松江です。

[#30734] UML クラス図と Ruby の記述についての対応 — Ken-ichi HASHIMOTO <ken@...>

橋本@福井県在住です。

13 messages 2001/07/28

[#30764] int/int => float? — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

50 messages 2001/07/31
[#30767] Re: int/int => float? — keiju@... (石塚圭樹) 2001/07/31

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

[#30768] Re: int/int => float? — matz@... (Yukihiro Matsumoto) 2001/07/31

まつもと ゆきひろです

[#30770] Re: int/int => float? — Take_tk <ggb03124@...> 2001/07/31

たけ(tk)です。

[#30771] Re: int/int => float? — matz@... (Yukihiro Matsumoto) 2001/07/31

まつもと ゆきひろです

[#30785] Re: int/int => float? — Konishi@... (Hiromasa KONISHI) 2001/07/31

 KONISHI Hiromasaです。

[ruby-list:30568] Re: 名前の異なるコンストラクタを複数持つには?

From: keiichi matsunaga <ma2@...>
Date: 2001-07-10 05:47:58 UTC
List: ruby-list #30568
  松永です。

差出人  :Yukihiro Matsumotoさん
タイトル:[ruby-list:30553] Re: 名前の異なるコンストラクタを複数持つには?

| c) 両方を組み合わせる
|
|      class Test
|        def Test.other1
|          new.init1
|        end
|        def Test.other2
|          new.init2
|        end
|      end

  これを使って書き直してみました。

class Test

	attr_writer :var, :varx, :vary

  def initialize
    @var = 0
  end
  
  def var
  	p self
  end

  def init1(x)
  	@var = 1
  	@varx = x
  end

  def init2(y)
  	@var = 2
  	@vary = y
  end

  def Test.other1(x)
  	new.init1(x)
  end

  def Test.other2(y)
  	new.init2(y)
  end

end

 で,以下がテストスクリプト。

a = Test.new
b = Test.other1(10)
c = Test.other2(20)

a.var
b.var
c.var

 実行してみるとエラーになります。

#<Test:0x2aba588  @var=0>
E:\Scripts\iMi\tools\new.rb:38: undefined method `var' for 10:Fixnum 
(NameError)

 どうやら init1 や init2 の最後の値が Test.other1(10) や Test.other2
(20) の値として返されているようです。そこで init1/init2 の最後に self 
という行を追加して,インスタンスを返すようにしてみるとうまく行きまし
た。

  def init1(x)
  	@var = 1
  	@varx = x
    self
  end

  def init2(y)
  	@var = 2
  	@vary = y
    self
  end

  結果はこうなります。

#<Test:0x2aba4c8  @var=0>
#<Test:0x2aba2d0  @vary=10, @var=1>
#<Test:0x2aba2b8  @varx=20, @var=2>

  結果は満足なのですが,この self がちょっとスマートじゃない(またか
よ!)気がします。これはしかたないものなのでしょうか。

-- 
松永肇一(keiichi matsunaga)
株式会社ライフメディア 開発部
  TEL:03-5717-6491 FAX:03-5717-6492

In This Thread