我需要编写一个计算方法,它有三个参数:一个整数,一个运算符字符串(例如:“+”)和另一个整数。该方法应该执行该操作并返回一个整数结果。该方法应该能够处理+, - ,*和/操作。例如,计算(4, '+',5)应返回9.红宝石计算方法
我觉得方法应该是这样的:
def calculator(a,'b',c)
a.to_i b.to_s c.to_i
end
p calculator(4,'+',5)
我不断收到错误消息。请告知如何拨打其他运营商来完成此操作。
我需要编写一个计算方法,它有三个参数:一个整数,一个运算符字符串(例如:“+”)和另一个整数。该方法应该执行该操作并返回一个整数结果。该方法应该能够处理+, - ,*和/操作。例如,计算(4, '+',5)应返回9.红宝石计算方法
我觉得方法应该是这样的:
def calculator(a,'b',c)
a.to_i b.to_s c.to_i
end
p calculator(4,'+',5)
我不断收到错误消息。请告知如何拨打其他运营商来完成此操作。
也许是这样的:
def calculator(a, operation, b)
a.send(operation, b)
end
calculator(1, '+', 3)
#=> 4
calculator(3, '*', 2)
#=> 6
还有使用符号(':+',':*')的额外好处。 – pjs
你应该了解什么是方法签名,什么是switch声明。
如果你不想理解,你可以使用红宝石发送方法。
是什么'a.to_i b.to_s c.to_i'想什么意思? –
如果参数是'a','op'和'b',所有字符串,您可以写入'eval a + b + c'(例如'eval“2”+“*”+“3”#=> 6'),但如果你这样做,'eval'警察会追随你(因为'eval',如果放弃使用,可以被坏人利用)。 –