ごとけんです

In message "[ruby-list:16351] executable statements in class def"
    on 99/08/30, kikutani / sprintmail.com <kikutani / sprintmail.com> writes:

>クラスの定義の中はメソッドとか、定数とかの定義だけかと思ったら
>
>class A
>  print "hogee\n"
>end
>
>tmp = A.new
>
>なんてやるとprintが実行されるのね。

Rubyではすべて(?)実行文ですね。

>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 }

で参照できます。

-- gotoken