我需要編寫一個計算方法,它有三個參數:一個整數,一個運算符字符串(例如:「+」)和另一個整數。該方法應該執行該操作並返回一個整數結果。該方法應該能夠處理+, - ,*和/操作。例如,計算(4, '+',5)應返回9.紅寶石計算方法
我覺得方法應該是這樣的:
def calculator(a,'b',c)
a.to_i b.to_s c.to_i
end
p calculator(4,'+',5)
我不斷收到錯誤消息。請告知如何撥打其他運營商來完成此操作。
我需要編寫一個計算方法,它有三個參數:一個整數,一個運算符字符串(例如:「+」)和另一個整數。該方法應該執行該操作並返回一個整數結果。該方法應該能夠處理+, - ,*和/操作。例如,計算(4, '+',5)應返回9.紅寶石計算方法
我覺得方法應該是這樣的:
def calculator(a,'b',c)
a.to_i b.to_s c.to_i
end
p calculator(4,'+',5)
我不斷收到錯誤消息。請告知如何撥打其他運營商來完成此操作。
也許是這樣的:
def calculator(a, operation, b)
a.send(operation, b)
end
calculator(1, '+', 3)
#=> 4
calculator(3, '*', 2)
#=> 6
還有使用符號(':+',':*')的額外好處。 – pjs
你應該瞭解什麼是方法簽名,什麼是switch聲明。
如果你不想理解,你可以使用紅寶石發送方法。
是什麼'a.to_i b.to_s c.to_i'想什麼意思? –
如果參數是'a','op'和'b',所有字符串,您可以寫入'eval a + b + c'(例如'eval「2」+「*」+「3」#=> 6'),但如果你這樣做,'eval'警察會追隨你(因爲'eval',如果放棄使用,可以被壞人利用)。 –