2016-09-26 248 views
0

我需要編寫一個計算方法,它有三個參數:一個整數,一個運算符字符串(例如:「+」)和另一個整數。該方法應該執行該操作並返回一個整數結果。該方法應該能夠處理+, - ,*和/操作。例如,計算(4, '+',5)應返回9.紅寶石計算方法

我覺得方法應該是這樣的:

def calculator(a,'b',c) 
    a.to_i b.to_s c.to_i 
end 


p calculator(4,'+',5) 

我不斷收到錯誤消息。請告知如何撥打其他運營商來完成此操作。

+1

是什麼'a.to_i b.to_s c.to_i'想什麼意思? –

+1

如果參數是'a','op'和'b',所有字符串,您可以寫入'eval a + b + c'(例如'eval「2」+「*」+「3」#=> 6'),但如果你這樣做,'eval'警察會追隨你(因爲'eval',如果放棄使用,可以被壞人利用)。 –

回答

6

也許是這樣的:

def calculator(a, operation, b) 
    a.send(operation, b) 
end 

calculator(1, '+', 3) 
#=> 4 
calculator(3, '*', 2) 
#=> 6 
+0

還有使用符號(':+',':*')的額外好處。 – pjs