2016-09-26 209 views
0

我需要编写一个计算方法,它有三个参数:一个整数,一个运算符字符串(例如:“+”)和另一个整数。该方法应该执行该操作并返回一个整数结果。该方法应该能够处理+, - ,*和/操作。例如,计算(4, '+',5)应返回9.红宝石计算方法

我觉得方法应该是这样的:

def calculator(a,'b',c) 
    a.to_i b.to_s c.to_i 
end 


p calculator(4,'+',5) 

我不断收到错误消息。请告知如何拨打其他运营商来完成此操作。

+1

是什么'a.to_i b.to_s c.to_i'想什么意思? –

+1

如果参数是'a','op'和'b',所有字符串,您可以写入'eval a + b + c'(例如'eval“2”+“*”+“3”#=> 6'),但如果你这样做,'eval'警察会追随你(因为'eval',如果放弃使用,可以被坏人利用)。 –

回答

6

也许是这样的:

def calculator(a, operation, b) 
    a.send(operation, b) 
end 

calculator(1, '+', 3) 
#=> 4 
calculator(3, '*', 2) 
#=> 6 
+0

还有使用符号(':+',':*')的额外好处。 – pjs