2014-01-27 34 views
1

我定義浮動紅寶石:結合串並得到變量組合的字符串值

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

如何獲取這個變量值?

回答

1

String#to_f將例如"0.7"轉換爲0.7。它不會將"enquire_balance_outstanding_score"轉換爲0.7;換句話說,to_f不能解析變量值。

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 
+0

謝謝。 eval是工作! – user3214044

+1

@ user3214044,正如我所提到的,我**不建議**使用它。 – falsetru

+0

@ user3214044,歡迎來到Stack Overflow!有些人試圖回答你的問題。如果這對你有幫助,你可以通過[接受答案](http://meta.stackexchange.com/a/5235)告訴社區,這對你最有用。 – falsetru