日時 Mon, 30 Aug 1999 01:24:48 +0900 の
メール <199908291624.BAA19668 / hanare00.math.sci.hokudai.ac.jp> において
gotoken / math.sci.hokudai.ac.jp (GOTO Kentaro) さん曰く:

> >class A
> >  print "hogee\n"
> >end
> >
> >tmp = A.new
> >
> >なんてやるとprintが実行されるのね。
> 
> Rubyではすべて(?)実行文ですね。

そういえばそんな話が。
すると new のときは class ... end が実行されるということですね。
どうもnewのときはinitializeメソッドが実行される気がしていた。
 
> >class A
> >  @abc = "ummm"
> >  def pr
> >    p @abc
> >  end
> >end
> >
> >tmp = A.new
> >tmp.pr
> >
> >では nil になって、インスタンス変数のassignは効かないのか。
> 
> えっと、この場合 def ... end の外側は A というオブジェクトの
> スコープなので、例えば
> 
> A.instance_eval{ p @abc }
> とか
> A.module_eval{ p @abc }
> 
> で参照できます。

うーむ、むずかしい。たしかにこれでできますが、@abc を $abc にしても
OKだけど、単にabcじゃだめってのがよくわかりません。
ここでの @abc はメソッドから参照できないけど、インスタンス変数
なんでしょうか?

-- 
人生を背負い投げ

菊谷 誠(Kikutani Makoto)  kikutani / sprintmail.com