class Person
def name
puts "Dave"
end
end
puts Person.object_id
访问方法的方法只有两种:
1)类方法中的Someclass.method。 #where Someclass是一个类。
当被访问的方法是在类中声明的常规方法时,2)和Object.method。和Object是类的实例。
它遵循Object.method模式,所以它是否意味着Person类真的是一个对象?
或object_id是一个类方法?后者似乎不太可能,因为类方法不能继承到实例中。但是当我们做这样的事情时:
a = Person.new
a.methods.include?("object_id") # this produces true
a是Person类的实例,因此object_id不能是类方法。
答案 0 :(得分:4)
是的,Ruby类是对象:
>> String.is_a? Object
=> true
>> String.methods.count
=> 131
>> Fixnum.methods.count
=> 128
答案 1 :(得分:1)
是的,Ruby中的类是类Class
的实例。实际上,您可以使用以下命令创建相同的类:
Person = Class.new do
define_method :name do
puts 'Dave'
end
end
然后,您只需输入Person.new.name
,它就会像您的班级一样工作。
检查Person是一个类Class
的实例就像在您的repl Person.class
中输入一样简单,然后得到Class
作为回报。