Ruby 如何转换数学运算符字符以执行其操作?
我正试着做这样的事情。它给了我一个错误,我想这是因为Ruby 如何转换数学运算符字符以执行其操作?,ruby,Ruby,我正试着做这样的事情。它给了我一个错误,我想这是因为op是一个字符串。是否可以将数学运算符的字符串转换为运算符 def calc(op) a = 9 b = 5 a op b end p calc('-') p calc('+') 这里使用的是: 感谢您更正代码的显示!我同意@Arup的回答,但想指出的是,你可以用eval“{a}{op}{b}”替换他的行a.send(op,b)。如果op='+',则变为eval“9+5”,即14。有些人建议总是避免使用eval,因为如果用户提供
op
是一个字符串。是否可以将数学运算符的字符串转换为运算符
def calc(op)
a = 9
b = 5
a op b
end
p calc('-')
p calc('+')
这里使用的是:
感谢您更正代码的显示!我同意@Arup的回答,但想指出的是,你可以用
eval“{a}{op}{b}”替换他的行a.send(op,b)
。如果op='+'
,则变为eval“9+5”
,即14
。有些人建议总是避免使用eval
,因为如果用户提供了发送到eval
的字符串,则可能会很危险,但在这里,我认为它的效果与a.send(op,b)
几乎相同。同样,我会使用send
。可能重复的
def calc(op)
a = 9
b = 5
a.send(op,b)
end
p calc('-')
p calc('+')
# >> 4
# >> 14