2017-07-31 8 views
1

ルビのFixnumクラスのすべてのメソッドを印刷したいと思います。私がFixnum.methodsとタイプすると、このタイプの出力が得られません。ルビのFixnumクラスのすべてのメソッドを印刷するには

+1

"このタイプの出力はわかりません。" - はい、これらはメソッド名です。これはFixnumで呼び出すことができます。代わりに何を見たいと思ったのですか? –

+0

"これは私が理解していないこのタイプの出力を与える" - これは文であり質問ではありません。 – mudasobwa

+0

期待される結果/出力は何ですか? – Stefan

答えて

0

これはルビー配列であり、メソッド名はシンボル(別のルビーのもの)で表されます。あなたは、あなたが得る出力シンボルとしてメソッド名の配列であるルビー2.4.0から

Fixnum.methods.each { |method| puts method } 

以降

Integer.methods.each { |method| puts method } 
+1

ちょうど 'puts Integer.methods' :) –

+0

あなたはそうです、全く同じことをしています:) – Ursus

+0

@SergioTulentsev' Integer.methods.each(&put()メソッド) 'はきれいですね。 – mudasobwa

0

を行うことができます。だから、あなたは彼らがこのようにそれを行うに印刷する場合:

Fixnum.methods.each { |method| puts method } 
2

おそらく、インスタンスメソッドを望んでいた:

Fixnum.instance_methods 

Objectからものをフィルタリングするには:

Fixnum.instance_methods - Object.instance_methods 
+0

'Fixnum'で宣言されたものについてのみ' Fixnum.instance_methods(false) 'もあります。そして、IMHOでは、 'Object.methods'ではなく、' Kernel.method'を除外するのがより理にかなっています。 – mudasobwa

+0

@mudasobwa 'false'は[Numeric'](https://ruby-doc.org/core-2.3.0/Numeric.html)のものもフィルタリングします。 – ndn

+0

これはOPの "fixnumのメソッド"の定義に依存します。これは、Fixnumが所有するメソッドでも、FixnumがInteger、Numeric、Comparable、Object、Kernel、および/またはBasicObjectから継承したメソッドでも可能です。 – Stefan

1

は、インストールを検討しますpry

pryはベットですrバージョンのirbで、ブラウズクラスとオブジェクトを「あたかもフォルダのように」することができます。たとえば、

$ pry 
[1] pry(main)> ls Fixnum 
Object.methods: yaml_tag 
Fixnum#methods: 
    % + < == >> bit_length fdiv  odd? to_f ~ 
    & - << === [] div   inspect ord to_s 
    * [email protected] <= > ^ divmod  magnitude size zero? 
    **/ <=> >= abs even?  modulo  succ |  
[2] pry(main)> 
... 
関連する問題