2

我对 Ruby 很陌生,我正在尝试使用存储在数组中的数学符号作为字符串来执行数学运算。这是我正在研究的逆波兰符号计算器。例如:

var = ['1','2','+']

我已经通过足够多的正则表达式来弄清楚如何在 if 语句中区分数字和非数字,但我试图弄清楚如何使以下工作产生-1。

var[0]  var[2] var[1]   #=>   1 - 2 

有谁知道如何将字符串“-”改回数学符号?

4

2 回答 2

4
'1'.to_i.send('-', '2'.to_i)
# => -1 

send调用第一个参数作为对象的方法,其余参数作为参数。

于 2013-08-21T05:46:09.717 回答
1

一种方法是使用eval函数

result = eval "#{var[0]} #{var[2]} #{var[1]}"
于 2013-08-21T05:49:56.997 回答