oclassのインスタンスがありますO。o何ができるのか知りたいです。
o.methods多くの方法を教えてくれます。だから私は通常そうしますo.methods - Object.instance_methods。しかし、それは簡潔ではありません。
のようなことをしたいo.methods - o.class.superclass.instance_methods。つまり、Oそれ自体で定義されたメソッドだけです。
他の方法はありますか?
oclassのインスタンスがあります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