0

Object 、 Class 、 Module 、 NilClass はすべて Class のインスタンスです。

1) 最初の疑念 どうして何かがそれ自体のインスタンスになることができるのか? (i.e 'Class' is an instance of 'Class')または私の仮定は間違っていますか?

2) Object 、 Class 、Module など ... がすべてオブジェクトの場合、どうすればクラスメソッドを持つことができますか? クラスメソッドはクラスからのみ呼び出すことができ、オブジェクトには存在しないためです。(or is my assertion incorrect that Object, Class , Module are all objects ?)

3) Object 、 Class 、 Module がオブジェクトでない場合、それらは何ですか?

3) クラスメソッドは、インスタンスaの欠落したメソッドを説明しClass、最終的にメソッド数の減少を説明しますか?

>> Class.methods.count

=> 82

>> a = Class.new

=> #<Class:0x1005519b8>

>> a.methods.count

=> 81
4

2 に答える 2

0
  1. Ruby コアはClassObjectModuleおよびで構成されKernelます。それらは事前定義されているため、Classクラスはそれ自体のインスタンスになることができます。

  2. それらもクラスであるため、クラスメソッドがあります(クラスはオブジェクトです)。

  3. まだ答えられません。答えを考えるには、どの方法が欠けているかを発見する必要があります。

于 2011-08-31T23:10:48.917 に答える