ruby - 捕获一个变量供以后在 Ruby 中使用

标签 ruby

我对 Ruby 比较陌生,但我正在 try catch 一个变量供以后使用。

例子:

x = [1,2,3]
y = x
y.reverse!

如何取回 x 的原始值?看起来当我改变 y 时 x 也改变了。基本上我需要在更改它的副本时捕获并保存一个变量值。 非常感谢! 艾伦R

最佳答案

一些“变异!”方法与等效的非变异形式配对。 (通常,如果存在这样的一对,则非变异形式在名称中缺少结尾的 !。)

在这种情况下,以及在所有情况下,除非有充分的理由证明其他情况,否则我建议使用非变异形式。我发现减少副作用可以使代码更清晰,也可以减少像这样微妙的小问题。 (gsub! 可能特别恶心。)

>> x = [1,2,3]                                                          
=> [1, 2, 3]                                                            
>> y = x                                                                
=> [1, 2, 3]                                                            
>> y = y.reverse                                                            
=> [3, 2, 1]                                                            
>> x                                                                    
=> [1, 2, 3]  

快乐的编码。

关于ruby - 捕获一个变量供以后在 Ruby 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6514346/

相关文章:

javascript - 如何使用 Selectize.js 从完整表格中进行选择?

ruby - 最快的 Ruby 记录器实现是什么?

ruby 语法糖 : dealing with nils

html - Wkhtmltopdf 单行字符在页面之间部分剪切

ruby - 在 ruby​​ 模块中添加特定于类的功能

使用 Aruba 进行 Ruby gem CLI 测试

ruby-on-rails - 为什么这行代码会引发语法错误?

ruby - 如何为 ruby​​ 的 Test::Unit::TestCase 中的所有测试定义通用的设置和拆卸逻辑?

ruby-on-rails - 有没有办法拥有多个 seeds.rb 文件?任何类型的 'versioning' 用于种子数据?

ruby - 带 docker 的 nginx 没有正确代理到我的 ruby​​ 应用程序