使用数组中存储的数学符号作为字符串

时间:2013-08-21 05:38:18

标签: ruby arrays

我是Ruby的新手,我正在尝试使用存储在数组中的数学符号作为字符串来执行数学运算。这是我正在研究的反向波兰表示法计算器。例如:

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

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

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

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

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

执行此操作的一种方法是使用eval函数

result = eval "#{var[0]} #{var[2]} #{var[1]}"