From: Inaba Hiroto Date: 1998-04-13T23:52:14+09:00 Subject: [ruby-dev:2288] Re: Registration & initialize method in subclass of builtin class From: matz@netlab.co.jp (Yukihiro Matsumoto) Date: Mon, 13 Apr 1998 12:00:39 +0900 > |早速ですが、fj.lang.rubyでちょっと自分がフォローしたbuiltin classの > |subclassのinitializeメソッドについてですが、ruby-1.1b9_09でも以下のク > |ラスではnewから呼ばれないようです。 > | > | IO Module Class Proc Struct > | > |これはあえてそのようにしているのでしょうか? > > Structは呼んでいるように見えます.なんか見落としがあるかな. > > Procは忘れていました.修正します. > > IOはopenで呼ばれないと言うことでしょうか? IO#newでは呼ばれ > ますが.openでも呼ばれた方が良いでしょうか? StructとIOですが、以下のテストスクリプトでnewしてもinitializeメソッ ドが実行されないように見えます。スクリプトがおかしいのでしょうか? class Foo < IO def initialize (*a) $stdout.print "Foo:init method called with arg(s)", a.inspect, ".\n" end end x = Foo.new(1) class Bar < Struct def initialize (*a) $stdout.print "Bar:init method called with arg(s)", a.inspect, ".\n" end end y = Bar.new("Y", :a, :b) > Module/Classはあまり必要ないかなあと思って呼んでませんでした > が,呼んでも邪魔にはならないかも知れませんね. たしかに、特にこの2つは普通の人がsubclassを作るようなクラスではないと 思います。 -- 稲葉 浩人 (inaba@st.rim.or.jp)