検索条件
全14件
(1/2ページ)
class MyPanel < Phi::Panel
def initialize
# ≪処理≫
end
end
MyPanel.new
というコードを書いたのだが、≪処理≫が実行されない(本来なら処理の前にsuperを書くが、わかりやすくするために削った)。
class MyPanel < Phi::Panel
def MyPanel.new
# ≪処理≫
end
end
MyPanel.new
としてやれば願いが叶う。newはクラスオブジェクトのメソッド(こういう言い方でいいんだっけ?)なので、def newではなく、def MyPanel.newと書く。superは省略したが、ちゃんとやるならもちろん返り値の設定までしてやらなきゃいけない。ret = super ≪処理≫ ret≪処理≫の中でプロパティいじるような目的がほとんどだと思うので、こんな書き方が定番になるんだろう。initializeと大きく異なるのはこの中でselfを呼ぶとクラスオブジェクトが返ってくることだ。
class B
end
class A < B
def A.new
ret = super
p self
ret
end
end
p A.new
--出力--
A
#<A:0x2bb42c8>
つまりこうか。Kernel.printとする。
rdoc -o <出力パス> -c shift_jis -T kilmer *.rb
>diff kilmer.rb.orig kilmer.rb 310a311,330 > IF:constants > <table cellpadding=5 width="100%"> > <tr><td class="tablesubtitle">Constants</td></tr> > </table> > <div class="name-list"> > <table summary="Constants"> > START:constants > <tr class="top-aligned-row context-row"> > <td class="method-name">%name%</td> > <td>=</td> > <td class="context-item-value">%value%</td> > IF:desc > <td width="3em"> </td> > <td class="context-item-desc">゙sc%</td> > ENDIF:desc > </tr> > END:constants > </table> > </div> > ENDIF:constants(すんませんKShikiのタグ置換に引っかかって見られません。ソース表示なら…)
class square
def initialize(w, h)
@width = w
@height = h
end
def get_area
return @width * @height
end
end
rdocだとこの場合のインスタンス変数は出力してくれない。