検索条件
全6件
(1/1ページ)
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 endrdocだとこの場合のインスタンス変数は出力してくれない。
<a href="****.html" target="right">などと書いてもtargetが有効にならないようだった。targetが目の敵にされているのは知っていたので、firefoxでは打ち切ったのかと思ったが、単に1.0.7にしたら直っていた。