我想知道發生了什麼。爲什麼OpenStruct值在其轉儲值的散列值發生變化時發生變化?
當我做到以下幾點:
new_struct = OpenStruct.new()
new_struct.color = 'Red'
new_struct.number = 4
這導致:
#<OpenStruct color="Red", number=4>
如果我再創建和更改一些PARAMS:
params = { first: new_struct.marshal_dump }
params[:first][:color] = 'Orange'
這將導致OpenStruct改變到:
#<OpenStruct color="Orange", number=4>
爲什麼這個OpenStruct會改變,如果我改變參數散列?有沒有辦法改變params散列而不改變OpenStruct?
謝謝!
謝謝,我覺得必須有一些原因。 OpenStruct是我的db中的一個列,它讓我感到驚訝,它正在發生變化。 – Lee