本を読む

読書やコンピュータなどに関するメモ

Rubyのトップレベルで関数形式メソッドが定義されているか調べる

 多くの人は興味ないし、興味ある人は知ってそうな話。メモとして。

 Rubyのトップレベルで定義されている関数形式メソッドは、Objectのprivateメソッドになっている。そのため、定義されているかどうか、何かのオブジェクト、例えばObjectオブジェクトへのrespond_to?の第2引数にtrueを渡して確認できる。

$ irb
ruby-1.9.2-p290 :001 > def hoge; end
 => nil
ruby-1.9.2-p290 :002 > Object.respond_to?(:hoge, true)
 => true

 同じことをCでやるには、rb_obj_respond_to()の第3引数を真にする。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/948-cbbce2d5

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad