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