【发布时间】:2013-11-01 19:10:31
【问题描述】:
我正在尝试做这样的事情。它给了我一个错误,我猜这是因为op 是一个字符串。是否可以将数学运算符的字符串转换为运算符?
def calc(op)
a = 9
b = 5
a op b
end
p calc('-')
p calc('+')
【问题讨论】:
-
感谢您更正代码的显示!
-
我同意@Arup 的回答,但想指出您可以将他的行
a.send(op,b)替换为eval "#{a} #{op} #{b}"。如果op = '+',则变为eval "9 + 5",即14。有人建议始终避免使用eval,因为如果用户提供了发送到eval的字符串可能会很危险,但在这里我认为它与a.send(op,b)的效果几乎相同。同样,我会使用send。
标签: ruby