我正在嘗試製作一個基於控制檯的計算器來練習一些Ruby,我使用'case'語句來檢查控制檯參數,然後使用Ruby的算術來解釋並返回結果。檢查一個字符串是否等於'*'
我遇到的問題是我無法讓Ruby執行與乘法相關聯的行。它只是去'else'塊並執行我的幫助方法。我除了指數所有其他方法我認爲紅寶石治療STAR字符「一切」(我不知道如何詞)
case @args[1]
when '+'
puts "#{@args[0].to_i + @args[2].to_i}"
when '-'
puts "#{@args[0].to_i - @args[2].to_i}"
when '*'
puts "#{@args[0].to_i * @args[2].to_i}"
when '/'
puts "#{@args[0].to_i/@args[2].to_i}"
when '%'
puts "#{@args[0].to_i % @args[2].to_i}"
when '**'
puts "#{@args[0].to_i**@args[2].to_i}"
else
help
end
我知道它看起來狡猾,裸記住我打算固定一旦我有一切工作,它就會起來。
我是相當新的Ruby的,所以我不上什麼,我需要做的讓Ruby對待這些簡單恆星,而不是正則表達式100%肯定...
我向你保證,這不是功課,我只是想學習一些Ruby,因爲我最近也開始學習Rails。
讓我猜測:你從shell中運行這個類似'ruby yourscript.rb 2 * 2'的東西?然後你的shell可能會把'*'當作[glob](http://en.wikipedia.org/wiki/Glob_(編程))並在它到達你的腳本之前展開它。 – hammar
啊,我明白你的意思。 「./clk 5 * 8」我會去做一些關於如何在zsh中逃避的研究。謝謝錘子。 編輯:我逃脫與\ *在我的外殼。考慮這個問題已解決 –