プログラミング的なSomething

読者です 読者をやめる 読者になる 読者になる

プログラミング的なSomething

ITエンジニア(?)目線で生活・自転車・トレーニング話を綴ります

Rubyでメソッドの存在を調べる方法まとめ

オブジェクトに対してメソッドが存在するか

使うメソッドはObject#respond_to?です。

"string".respond_to?(:chomp)
=> true

こんな感じ。

クラスに対してメソッドの存在を確認する

Method#method_defined?を使います。

String.method_defined?(:chop)
=> true

上記の方法ではPrivateなメソッドは探せません

なので、それぞれ以下のようにメソッドを書き換え(引数を入れ)てください。

  • respond_to? => respond_to?(:method,true)
  • method_defined? => private_method_defined?

メタプログラミングなんかするときに使ってたけどすっかり忘れてたのでメモでした。

広告を非表示にする