【发布时间】:2011-11-01 10:21:51
【问题描述】:
如何在 Ruby 中为此进行突变:
row = row.to_hash
我试过 row.to_hash!
但它不起作用。
编辑:这是它所在的代码:
CSV.foreach('stores.csv', :headers => true) do |row|
row = row.to_hash
end
【问题讨论】:
-
这还不够短吗?状态的就地突变可能不值得节省输入的 4 个左右字符。
-
您的问题还不清楚。 row 是哪个类的成员?你到底想达到什么目的?如果您可以给出行的示例值,然后解释您希望生成的哈希看起来像什么,这将有所帮助。此外,像这样改变变量类型通常会影响代码的易读性和可维护性;无论如何,将哈希分配给新变量可能是更好的风格。
-
@AdamSpiers:更新了示例代码。
-
@MichaelKohl:这不仅仅是因为它足够短——我想看看 Ruby 是如何完成突变的。
-
我认为这是一个相当合理的问题。提问者清楚地表明他或她是初学者,并且在某些情况下隐藏突变是有根本原因的。讨论这些原因是为了更多地了解该语言是很有趣的。
标签: ruby-on-rails ruby ruby-on-rails-3