gpt4 book ai didi

ruby - 将哈希值分配给对象的 DRY 方法

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

我正在寻找一种优雅的方式来将存储在哈希中的值分配给预先存在的对象。需要明确的是,如果我有一个对象,比如具有两个属性的 obj,比如名称和年龄,我想分配来自哈希的值而不做类似的事情:

obj.name = hash[:name]
obj.age = hash[:age]

感谢您的关注。西蒙妮

最佳答案

最好的办法可能是简单地定义一个像 update_attributes 这样的方法,它接受一个散列并在类的实例方法中执行它。

扩展其他人所写的内容以及您似乎需要的内容我认为您最好的选择是:

hash.keys.each do |key|
m = "#{key}="
obj.send( m, hash[key] ) if obj.respond_to?( m )
end

这将说明:

  • 并非始终在散列中包含该类的所有属性,并且
  • 散列中任意数量的键(不只是 :name 等)

关于ruby - 将哈希值分配给对象的 DRY 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3669801/

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