在 Ruby 中修改类外部的实例变量
谁能告诉我如何用仅一行修改类外部的类或实例变量?因此,鉴于此代码,
class Dummy
def initialize()
@var = 0
end
def value
@var * 2
end
end
d = Dummy.new
我无法更改上述任何内容。我只能添加一行行,以便 d.value 返回 6。是否存在任何技巧可以做到这一点?
Can anyone tell me how to modify a class or instance variable outside of a class with only one line? So, given this code
class Dummy
def initialize()
@var = 0
end
def value
@var * 2
end
end
d = Dummy.new
I cannot change any of the above. I can only add one line so that d.value returns 6. Do any tricks exist to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
但不要在实际程序中这样做。
instance_variable_set
主要用于元编程。如果您在其他情况下使用它,那么几乎肯定您做错了。But don't do this in an actual program.
instance_variable_set
is mainly useful for metaprogramming. If you're using it in some other context, you're almost certainly doing it wrong.Chuck 答案的替代方案:
An alternative to Chuck's answer:
瞧,只有一行,就像OP想要的那样。
Voilà, only one line, just like the OP wanted.