我发现了这个有趣的答案:
https://stackoverflow.com/a/2348854/169277
当您尝试设置实例变量时,这很好用。
有没有一种方法可以应用相同的逻辑或更好的逻辑来创建通用构造函数,例如:
def initialize(obj)
obj.each do |k,v|
#find the setter for each k and set the value v to and return newly created object
end
end
如果我有对象TestObject
:
class TestObject
attr_accessor :name, :surname, :sex
end
我正在考虑创建它是这样的:
TestObject.new({:name => 'Joe', :surname => 'Satriani'})
一个人将如何实现这一目标?
因此,这样做将是以下内容的简写:
t = TestObject.new
t.name = 'Joe'
t.surname = 'Satriani'