Ruby:组合字符串并获取Combined字符串变量的值

时间:2014-01-27 04:40:34

标签: ruby

我定义了浮动

enquire_balance_outstanding_score=0.7

然后,我合并了文本并得到变量“enquire_balance_outstanding_score”的相同名称

text=enquire-balance_outstanding
ref_score=0.0
ref_score= (text.tr('-','_')+"_score").to_f

我希望ref_score的值为0.7但是当我运行时,它返回 0.0

如何获取此变量值?

2 个答案:

答案 0 :(得分:1)

String#to_f"0.7"转换为0.7。它不会将"enquire_balance_outstanding_score"转换为0.7;换句话说,to_f无法解析变量值。

答案 1 :(得分:0)

如何使用Hash

values = {'enquire_balance_outstanding_score' => 0.7}
text = 'enquire-balance_outstanding'
values[text.tr('-','_')+"_score"]
# => 0.7

您可以使用Kernel#eval,但不推荐,因为eval可以执行abitrary表达。

enquire_balance_outstanding_score = 0.7
text = 'enquire-balance_outstanding'
eval text.tr('-','_')+"_score"
# => 0.7