From: Yukihiro Matsumoto Date: 2007-01-08T19:26:30+09:00 Subject: [ruby-dev:30111] Re: send/__send__ and private method まつもと ゆきひろです In message "Re: [ruby-dev:30109] Re: send/__send__ and private method" on Mon, 8 Jan 2007 17:17:08 +0900, Urabe Shyouhei writes: |Yukihiro Matsumoto wrote: |> (5) send!, __send!の各メソッドは廃止。privateメソッドを呼ぶ |> ためのprivateメソッドfuncallが追加。使い方は |> |> funcall name, args... |> |> privateなのでobj.funcallという風には使えない。他のオブジェ |> クトのprivateメソッドが呼びたい時にはinstance_evalなどを |> 使う。 | |selfのprivateメソッドが呼びたければ普通にこれまでどおりの方法で呼べばい |いんじゃないですか?わざわざfuncallを経由する理由は? |この(5)がどのような用法を意図しているのかが見えません。具体例を示してい |ただいた方がわかりやすいと思います。 なにか誤解があるのかな? funcallはsend同様に動的にメソッド名 を決定したい時に使うメソッドです。メソッド名が固定のときは 「普通にこれまで通りの方法で呼べばよい」です。 methods = {:exposure => :repaint, :mousemove => :move, :mouseover => :push} funcall methods[events], *args のような感じだと思っていただければ。