在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")

Ruby相关问答推荐

关键字if是什么对象类型/类?

Sinatra 与 EventMachine WebSockets 一起工作是否成功?

我如何判断哪些模块已混合到一个类中?

如何在没有 Web 服务器的情况下从命令行执行 ruby​​ 模板文件 (ERB)?

拆分 Ruby 字符串时如何保留分隔符?

如何合并散列数组以获取值数组的散列

Ruby 的排序方法使用哪种算法?

如何在 ruby​​ 中针对正则表达式测试整个字符串?

Ruby 中的 $1 和 \1

在Ruby中实现平等的正确方法是什么

从命令行使用Bundle 器将 gem 添加到 gemfile

默认情况下需要查找的路径是什么?

何时在 Ruby 中使用 `require`、`load` 或 `autoload`?

Ruby on Rails switch

如何使用 Ruby 的 self 关键字

解析带有标题字段的 CSV 文件作为每行的属性

如何在Ruby中将字符串拆分为仅具有给定字符的两部分?

让 sidekiq 立即执行作业(job)

Ruby 中的那些管道符号是什么?

如何在 Ubuntu 12.04 上正确安装 ruby​​ 2.0.0?