gpt4 book ai didi

ruby - 默认的 Ruby 访问器方法?

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

是否有默认方法或类访问器,我可以将其添加到 Ruby 类中,如果访问器(Ruby 类属性)不退出,则调用该类?然后我可以编写一些自定义代码来回复,就像从数据库中读取的数组列表一样,其中的值可以像访问器一样访问,而无需我编写访问器代码(因为如果从数据库中读取它是未知的)。

使用 Ruby MRI 1.9

谢谢!

最佳答案

是的,它叫做method_missing;只要使用未定义的方法,它就会被调用。您可以使用它来添加或模拟您想要的任何方法,包括访问器。

例如,如果您将它放在 Hash 上,您可以将 hash 的内容视为属性:

h = {}
def h.method_missing(*args)
if args.length == 1
self[args[0]]
elsif args.length == 2 and args[0].to_s =~ /^(.*)=$/
self[$1.intern] = args[1]
else
super
end
end

让你写:

h.bob = "Robert"

if h.bill == "William" ...

除了更正常的 h[:bob] = ... 风格之外,等等。

关于ruby - 默认的 Ruby 访问器方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/636277/

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