在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)
从技术上讲,实现所需的方法是eval "#{a}#{c}#{b}"- 将所有变量插入到字符串中.
但是,我不明白你为什么要用eval它.因为-是所有数字类的方法,所以a.send(c, b)如果你想这样做,你可以这样做a - b.