オブジェクトのメソッドの一覧
Ruby で、オブジェクトを使っていて、ウーン、このオブジェクト、どういうメソッドが使えたんだっけ?
という疑問にお手軽に答えてくれる、"methods"メソッド。
実際にやってみましょう。
という ruby ファイルを実行すると、
だらだらだらー、と92個もメソッドの一覧が表示されました。
まあ、これで一件落着なのですが、ちょっと見づらいので、並べ替えしましょう。
これで、見やすくなりました・・・って数が多すぎ?
そういう贅沢なあなたには、絞り込みをおすすめします。
num1 は、Fixnum というクラスに属しているのですが、(num1.class で確かめてみよう!)Fixnum 固有のメソッドを調べてみましょう。
というのは、どういうことかというと、Fixnum は、親クラスが Integer なのですが、(num1.class.superclass で確かめてみよう!)Integer クラスのメソッドを除外してみます。
すると17個のメソッドが出てきました。なーんて感じに絞り込むと、探すのもちょっとは楽になるかもしれません。
どうして superclass.methods じゃなくて superclass.instance_methods か、というと、superclass.methods で出てくるメソッドの一覧は、Integer.XXXXXX として使えるメソッドだからです。
今回除外したいのは、Integer クラスのインスタンス(オブジェクト)が使えるメソッド(int1.YYYYYY みたいな・・・)だからなのです。
分かりましたでしょうか・・・分からない場合コメント欄にクレーム書き込みをお願いします。
ちなみに、この親クラスの Integer のさらに親クラスは、Numeric なのですが、(num1.class.superclass.superclass で確かめてみよう!もしくは、一気に num1.class.ancestors で確かめてみよう!)Numeric クラスのメソッドを除外してみることももちろんできます。
だからどうした、という感じですが、まあいいじゃないですか。
【広告】
という疑問にお手軽に答えてくれる、"methods"メソッド。
実際にやってみましょう。
num1 = 123
num1.methods
という ruby ファイルを実行すると、
だらだらだらー、と92個もメソッドの一覧が表示されました。
まあ、これで一件落着なのですが、ちょっと見づらいので、並べ替えしましょう。
num1.methods.sort
これで、見やすくなりました・・・って数が多すぎ?
そういう贅沢なあなたには、絞り込みをおすすめします。
num1 は、Fixnum というクラスに属しているのですが、(num1.class で確かめてみよう!)Fixnum 固有のメソッドを調べてみましょう。
というのは、どういうことかというと、Fixnum は、親クラスが Integer なのですが、(num1.class.superclass で確かめてみよう!)Integer クラスのメソッドを除外してみます。
(num1.methods - num1.class.superclass.instance_methods).sort
すると17個のメソッドが出てきました。なーんて感じに絞り込むと、探すのもちょっとは楽になるかもしれません。
どうして superclass.methods じゃなくて superclass.instance_methods か、というと、superclass.methods で出てくるメソッドの一覧は、Integer.XXXXXX として使えるメソッドだからです。
今回除外したいのは、Integer クラスのインスタンス(オブジェクト)が使えるメソッド(int1.YYYYYY みたいな・・・)だからなのです。
分かりましたでしょうか・・・分からない場合コメント欄にクレーム書き込みをお願いします。
ちなみに、この親クラスの Integer のさらに親クラスは、Numeric なのですが、(num1.class.superclass.superclass で確かめてみよう!もしくは、一気に num1.class.ancestors で確かめてみよう!)Numeric クラスのメソッドを除外してみることももちろんできます。
(num1.methods - num1.class.superclass.superclass.instance_methods).sort
だからどうした、という感じですが、まあいいじゃないですか。
【広告】