fc2ブログ

2023.09 «  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - - - - » 2023.11
TOP > オブジェクトのメソッドの一覧

 ← DBテーブル間の結びつき その1【イントロ】 | TOP | Pluginを使ってみる【Embedded JavaScripts v.1.0】

オブジェクトのメソッドの一覧 

2007年10月20日 ()
Ruby で、オブジェクトを使っていて、ウーン、このオブジェクト、どういうメソッドが使えたんだっけ?

という疑問にお手軽に答えてくれる、"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



だからどうした、という感じですが、まあいいじゃないですか。

【広告】

[2007.10.20(Sat) 01:14] Rubyの文法Trackback(0) | Comments(0)
↑TOPへ

 ← DBテーブル間の結びつき その1【イントロ】 | TOP | Pluginを使ってみる【Embedded JavaScripts v.1.0】

COMMENT

COMMENT POST















管理者にだけ表示

 ← DBテーブル間の結びつき その1【イントロ】 | TOP | Pluginを使ってみる【Embedded JavaScripts v.1.0】