【发布时间】:2012-04-16 15:42:33
【问题描述】:
如何在 Ruby 中获取 BasicObject 实例的类名?例如,假设我有这个:
class MyObjectSystem < BasicObject
end
puts MyObjectSystem.new.class
我怎样才能使这段代码成功?
编辑:我发现 Object 的实例方法 class 被定义为 return rb_class_real(CLASS_OF(obj));。有什么方法可以从 Ruby 中使用它?
【问题讨论】:
-
你能举一个更具体的例子来说明你正在尝试做什么吗?您是在问“如果我有一个继承自 BasicObject 的类 Foo,有没有办法确定该类的实例是 'Foo' 而不是 BasicObject”?不知道你在问什么。
-
实际上,没错!更改帖子以澄清
-
为什么不能使用
#class方法? -
@JoshuaCheek 因为
#class是在Object上定义的,而不是我的类继承自的BasicObject(我确定我不想使用Object) -
BasicObject的重点是没有有很多方法。为什么需要或想要继承 BasicObject 而不是 Object?
标签: ruby oop class object ruby-1.9.3