在Ruby中,如何复制一个变量,使对原始变量的更改不会影响副本?
例如:
phrase1 = "Hello Jim"
phrase2 = phrase1
phrase1.gsub!("Hello","Hi")
p phrase2 #outputs "Hi Jim" - I want it to remain "Hello Jim"
在这个例子中,两个变量指向同一个对象;我想为第二个变量创建一个新对象,但最初它包含相同的信息.
在Ruby中,如何复制一个变量,使对原始变量的更改不会影响副本?
例如:
phrase1 = "Hello Jim"
phrase2 = phrase1
phrase1.gsub!("Hello","Hi")
p phrase2 #outputs "Hi Jim" - I want it to remain "Hello Jim"
在这个例子中,两个变量指向同一个对象;我想为第二个变量创建一个新对象,但最初它包含相同的信息.
至于复制,你可以做:
phrase2 = phrase1.dup
或
# Clone: copies singleton methods as well
phrase2 = phrase1.clone
您也可以这样做,以避免复制:
phrase2 = phrase1.gsub("Hello","Hi")