OpenStruct
条件が満たされたときに値を更新するにはどうすればよいですか? 私は次のように考えました:
o = OpenStruct.new(a: 1, b: 2)
o.each_pair{|k,v| v = 3 if v.even? }
しかし、このコードは機能しません。
このコードで更新できましたが、かなり読みにくいです。
OpenStruct.new(o.each_pair.map{|k,v| [k, v.even? ? 3 : v] }.to_h)
OpenStruct
条件によって値を更新するより良い方法はありますか?