Ruby - 如何评估两个数字和一个运算符?

Mic*_*ant 2 ruby eval

在Ruby中,如果我设置变量:

1.9.3-p327 :002 > a=20;b=5;c="-"
Run Code Online (Sandbox Code Playgroud)

那我怎么能做"ab c"并让它返回15

我试过这个

class Dummy < Object
  def self.calc(a,b,operation)
    return eval(a,operation,b)
  end
end

1.9.3-p327 :006 > Dummy.calc(a,b,c)
Run Code Online (Sandbox Code Playgroud)

但我明白了

TypeError: can't convert Fixnum into String
    from (irb):6:in `eval'
Run Code Online (Sandbox Code Playgroud)

Chu*_*uck 6

从技术上讲,实现所需的方法是eval "#{a}#{c}#{b}"- 将所有变量插入到字符串中.

但是,我不明白你为什么要用eval它.因为-是所有数字类的方法,所以a.send(c, b)如果你想这样做,你可以这样做a - b.