それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

rubyで可変関数的に、オブジェクトのメソッドを文字列で指定して呼び出す。

rubyのクラスメソッドを指定して呼び出す。

>> class Test>> end #=> nil
>> class Test
>>  def hoge
>>   puts :hoge
>>  end
>> end  #=> nil
>> t = Test.new #=> #<Test:0x10fdf3288>

t.method("hoge").call
hoge


これで出来るのですね。callはrubyの()省略の副作用なので仕方ないですね。

オブジェクト.method('メソッド名').call(引数)


です。


callがなくなればもっとかっこいいと思うけれど、Rubyは ( ) を省略できるので、( )の有無でJavascriptみたく、関数へのポインタと、関数実行を区別できない。 明示的に( )をつけたら、実行、それ以外はProcオブジェクト参照って出来ればいいのな。

広告を非表示にする