gpt4 book ai didi

具有随机参数计数的 Ruby 调用构造函数

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

我有一些类

class Demo1 < Struct.new(:text, :text2) 
end
class Demo2 < Struct.new(:text, :text2, :text3)
end

如果我只有参数的名称和散列值,如何调用每个类的构造函数我需要这样写方法,但这是错误的,因为在 send(:new,args) Struct 将包含 :text 等于 args

 def call_demo_object(demo_name, args={})
demo_name.to_s.constantize.send(:new,args)
end

最大的问题是使用散列中的随机参数调用构造函数

最佳答案

变体一:

def call_demo_object(demo_name, args={})
z = [':new']
args.keys.each do |key|
z.push "args[:"+key.to_s+"]"
end
eval('demo_name.to_s.constantize.send(' + z.join(', ') +')' )
end

变体二:

def call_demo_object(demo_name, args={})
a = demo_name.to_s.constantize.send(:new)
args.each do |key, value|
a[key] = value if a.members.include?(key)
end
a
end

关于具有随机参数计数的 Ruby 调用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5565570/

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