Rubyコードに次のような構造体があります
Parameter = Struct.new(:name, :id, :default_value, :minimum, :maximum)
後で、この構造体のインスタンスを使用して作成します
freq = Parameter.new('frequency', 15, 1000.0, 20.0, 20000.0)
ある時点で、この構造体の正確な複製が必要になるので、
newFreq = freq.clone
次に、newFreq
名前を変更します
newFreq.name.sub!('f', 'newF')
奇跡的に、これも変わりfreq.name
ます!
のような単純な割り当てnewFreq.name = 'newFrequency'
は変更されませんfreq
。
これはこれが機能することになっている方法ですか?
編集:clone
深いコピーを作成するために、構造体とオーバーロードの代わりにクラスを使用することは良い考えですか?