조건이 충족 될 때 OpenStruct
의 값을 어떻게 업데이트 할 수 있습니까? 이렇게 생각 :조건으로 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
값을 업데이트하는 더 좋은 방법이 있습니까?
'o.b.even 인 경우 o.b = 3? # => 3; o # => #; o.to_h # => {: a => 1, : b => 3}'. –