在运行时向 Ruby 类添加类实例变量和 attr_reader ?
如何在运行时添加类实例变量、其数据和 attr_reader?
class Module
def additional_data member, data
self.class.send(:define_method, member) {
p "Added method #{member} to #{name}"
}
end
end
例如,给定这个类
class Test
additional_data :status, 55
end
,现在我可以调用:
p Test.status # => prints 55
How do I add a class instance variable, the data for it and a attr_reader at runtime?
class Module
def additional_data member, data
self.class.send(:define_method, member) {
p "Added method #{member} to #{name}"
}
end
end
For example, given this class
class Test
additional_data :status, 55
end
So that now I can call:
p Test.status # => prints 55
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这个怎么样?
这是非常不言自明的,但如果您有任何疑问,请告诉我。
How about this?
It's pretty self-explanatory, but let me know if you have any questions.
Module#class_eval
就是您想要的:Module#class_eval
is what you want: