私はこの興味深い答えを見つけました:
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'