【发布时间】:2012-03-30 09:16:29
【问题描述】:
我使用一个数组来存储字段值。为了轻松添加和访问元素,我使用常量作为元素标识符。
到目前为止,我是这样手动完成的:
stages = ["lidnummer","aardf","prest","dt_prest","aantal","bedrag","verstrekker","foutcode"]
values = ["it","can","be","anything",0,5.3,nil,88]
LIDNUMMER,AARDF,PREST,DT_PREST,AANTAL,BEDRAG,VERSTREKKER,FOUTCODE = 0,1,2,3,1,5,6,7
p values[AARDF] => "can"
现在我已经像这样自动化了:
stages = ["lidnummer","aardf","prest","dt_prest","aantal","bedrag","verstrekker","foutcode"]
values = ["it","can","be","anything",0,5.3,nil,88]
stages.each do |c|
eval "#{c.upcase} = #{stages.index(c)}"
end
p values[AARDF] => "can"
但我想有更好的 Ruby 方式来做到这一点,也许没有 eval,有什么建议吗?
【问题讨论】:
-
红宝石中的幻数是
Symbols,所以试着用它们来做吧。 -
编辑了 values 数组以更清楚我需要什么
标签: ruby arrays constants eval