From: thitoshi@... (TAKAHASHI Hitoshi) Date: 2000-02-18T16:39:18+09:00 Subject: [ruby-list:20825] Re: method object 京都大学の高橋です。 の記事において matz@netlab.co.jpさんは書きました。 >> 理論的にはメソッドオブジェクトにはbound method objectと >> unbound method objectがあります。 >> >> bound method objectはレシーバと結び付いたメソッドオブジェク >> トです。つまり、レシーバを指定せずに引数だけを指定して呼び出 >> します。一方、unbound method objectはレシーバと結び付いてい >> ないメソッドオブジェクトで関数のようなものです。こちらはレシー >> バも含めて指定して呼び出します。 なるほど。御教授ありがとうございます。 >> [重要] Rubyにはbound methodobjectはもうあります。 >> >> たとえば、 >> >> pp = self.method(:print) >> pp.call(5,4,"\n") >> >> なんてしてみると分かります。 おおー、本当だー! しかも p pp.type ってしたらちゃんと Method って出た! いやはや、恐れ入りました。 m(__)m これってドキュメントに書かれてないですよね? …あれ、でも、 pp2 = pp.dup としたら can't clone Method (TypeError) って怒られちゃった。 pp2 が指すメソッドのシンボルが分からなくなるからかな? なら、 pp2 = pp.clone(:print2) はどうかと思ったけど、今度は引数の数が違うと怒られた、、、、 ------------------------------------------------------------------- TAKAHASHI Hitoshi Experimental Nuclear and Hadronic Physics Laboratory Department of Physics, Kyoto University E-mail: thitoshi@ne.scphys.kyoto-u.ac.jp URL: http://www-nh.scphys.kyoto-u.ac.jp/~thitoshi/member.html -------------------------------------------------------------------