gpt4 book ai didi

ruby - 变量改变时调用的钩子(Hook)

转载 作者:数据小太阳 更新时间:2023-10-29 08:52:45 26 4
gpt4 key购买 nike

Ruby 中是否有一个每次某个变量的值发生变化时都会调用的钩子(Hook)?

最佳答案

如果您为 Ruby 编写 C 扩展,您实际上可以创建一个全局变量,只要有人设置它就会触发 setter Hook 。

但您可能不想这样做,因为您必须编写一些 C 语言,而管理它可能会很痛苦。

更好的策略是通过适当的方法读取和设置变量。然后当 setter 方法被调用时,你可以做任何你想做的事。这是一个将变量封装在对象中的示例:

class Foo
def bar=(v)
@bar = v
# do some stuff
end

def bar
@bar
end
end

同样,您可以将变量封装在模块或类中而不是对象中。

关于ruby - 变量改变时调用的钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8860450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com