logo       

[ruby-list:42155] mainオブジェクトのメソッドを関数形式で呼んだらselfは?: msg#00186

lang.ruby.japanese

Subject: [ruby-list:42155] mainオブジェクトのメソッドを関数形式で呼んだらselfは?

 初めまして。
 mainオブジェクトのメソッドを関数形式で呼んだら、呼ばれたメソッド内での
selfは呼び出し元のオブジェクトになるようなのですが、このことはどのように
理解すればよいでしょうか。
 以下のプログラムでxはたった一度だけ@xを作成する目的で作ったメソッドで
す。mainで"p x"としてもTestクラスのpxで"p x"としても同じ内容が表示される
ことを期待したのですが実際には違う内容を表示します。

def x
@x=[] if not @x
@x
end

class Test
def px
@x = 3
p x
end
end

x << 1 << 2
p x
Test.new.px

=>[1, 2]
=>3

                 システムアート研究所 中西 健

--------------------------------------
Celebrate Yahoo! JAPAN 10th Anniversary
http://pr.mail.yahoo.co.jp/10thann/




<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise