【发布时间】:2023-03-25 10:25:01
【问题描述】:
我的 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 来进行深层复制是个好主意吗?
【问题讨论】:
标签: ruby clone string-substitution