如何转换数学运算符字符以执行其操作?

obe*_*lus 4 ruby

我想做这样的事情.它给了我一个错误,我猜是因为它op是一个字符串.是否可以将数学运算符的字符串转换为运算符?

def calc(op)
  a = 9
  b = 5
  a op b
end

p calc('-')
p calc('+')
Run Code Online (Sandbox Code Playgroud)

Aru*_*hit 11

它在这里使用Object#send:

def calc(op)
  a = 9
  b = 5
  a.send(op,b)
end

p calc('-')
p calc('+')
# >> 4
# >> 14
Run Code Online (Sandbox Code Playgroud)