Ruby では、次のように記述できます。
Dog = Class.new
ここでDogはObject、 のインスタンスであるClassです。
また、私は書くことができます
fido = Dog.new
が の場合にのみ可能DogですClass。
DogここClassはですかObject?
Ruby では、次のように記述できます。
Dog = Class.new
ここでDogはObject、 のインスタンスであるClassです。
また、私は書くことができます
fido = Dog.new
が の場合にのみ可能DogですClass。
DogここClassはですかObject?
Ruby のすべてはObject(ブロックを除く) です。そして、DogここにもClass.
Dog = Class.new
fido = Dog.new
したがって、答えは両方です。
以下のように、オブジェクト自体に、それらがどこに属しているかを尋ねます。
Dog = Class.new
fido = Dog.new
Dog.instance_of? Class #=> true
fido.instance_of? Class #=> false
fido.instance_of? Dog #=> true
Dog.superclass #=> Object
Dog.is_a? Object #=> true
Dog.is_a? Class #=> true
詳細については、Object model Documentation
一部の初心者が繰り返し行う間違いを犯していると思います。「is」の2 つの意味を混同しています。
あなたのケースで、
Dogのインスタンス(ただしサブクラスではない)Classであり、Dogのサブクラスです (ただし、インスタンスではありません) Object。したがって、さまざまな意味で、それは でClassあり、Objectです。
「Ruby のすべてが である」と言うときObject、それはすべてが のインスタンスであるという意味ではありませんObject。これは、すべてが の (再帰的) サブクラスのインスタンスであることを意味しますObject。