o
classのインスタンスがありますO
。o
何ができるのか知りたいです。
o.methods
多くの方法を教えてくれます。だから私は通常そうしますo.methods - Object.instance_methods
。しかし、それは簡潔ではありません。
のようなことをしたいo.methods - o.class.superclass.instance_methods
。つまり、O
それ自体で定義されたメソッドだけです。
他の方法はありますか?
o
classのインスタンスがありますO
。o
何ができるのか知りたいです。
o.methods
多くの方法を教えてくれます。だから私は通常そうしますo.methods - Object.instance_methods
。しかし、それは簡潔ではありません。
のようなことをしたいo.methods - o.class.superclass.instance_methods
。つまり、O
それ自体で定義されたメソッドだけです。
他の方法はありますか?
メソッドを使用できますModule#instance_methods
:
o.class.instance_methods(false)
警告ドキュメントは間違っているようです。次のように書かれています:
引数がない場合、または引数が falseの場合、mod のインスタンス メソッドが返されます。それ以外の場合は、mod および mod のスーパークラスのメソッドが返されます。
しかし、実際にはデフォルトのパラメーターは次のtrue
とおりです。
String.instance_methods.size
# => 184
String.instance_methods(false).size
# => 130