你可以在Ruby中添加一个名称依赖于变量的数组吗?

时间:2013-02-12 23:02:43

标签: ruby arrays string variables

让我们假设一个店主想知道他的产品在世界各地的销售情况,以及哪些产品在哪里畅销。

他有以下数据:| ID,货币,数量,位置|

有没有一种方法可以将数据放入特定于货币的数组中而无需明确指定,而不是遍历每种货币的数据(即,有没有办法避免)

if curr == "USD"; USDid << ID; USDquan << Quantity
elsif...

......等等?出于此问题的目的,假设存在正在观察的货币的* id和* quan数组。

是否有某种正则表达式技巧可以查看货币并将数据放入适当的数组中?

1 个答案:

答案 0 :(得分:1)

是。使用数组的散列而不是多个数组:

sale_data = {}
sale_data.default = {"ID" => [], "Quantity" => [], "Location" => []}
# Later...
sale_data[curr]["ID"] << ID; sale_data[curr]["Quantity"] << quan; #Etc..

default=调用使您可以根据需要分配任意数量的货币而无需预先定义它们。因此,在代码中的任何位置,如果没有先前的条目,例如美元,则在添加数据时,会创建一个。