簡介#
我們將使用 Lua 實現一個簡單的波蘭表達式終端計算器。
開始#
在 Lua 中,獲取控制台輸入內容是十分容易的一件事情,控制台輸入的內容在 Lua 中將會變成一個數組arg[]
,然後我們直接拿走就好。
lua compute.lua + 1 2
在上面的控制台裡我們一共輸入了三個內容 “+”,“1” 和 “2”,在 Lua 裡,控制台傳入的數據都是字符串。
我們可以在compute.lua
中獲取他們
print(arg[1]) -- +
print(arg[2]) -- 1
print(arg[3]) -- 2
剩下的就簡單了,只需要寫一個簡單的波蘭表達式的計算函數
function Calculate(symbol, a, b)
-- 錯誤處理
if ((type(symbol) ~= "string" or (type(a) or type(b)) ~= "number")) then
return "錯誤:未知輸入類型"
end
if (symbol == "+") then
return a+b
elseif (symbol == "-") then
return a-b
elseif (symbol == "*") then
return a*b
elseif (symbol == "/") then
return a/b
else
-- 錯誤處理
return "錯誤:未知符號類型"
end
end
解析控制台的命令
Shell_symbol = arg[1]
-- 抓換類型
Shell_a = tonumber(arg[2])
Shell_b = tonumber(arg[3])
最後輸出結果
print(Calculate(Shell_symbol, Shell_a, Shell_b))
完整代碼#
Shell_symbol = arg[1]
Shell_a = tonumber(arg[2])
Shell_b = tonumber(arg[3])
function Calculate(symbol, a, b)
if ((type(symbol) ~= "string" or (type(a) or type(b)) ~= "number")) then
return "錯誤:未知輸入類型"
end
if (symbol == "+") then
return a+b
elseif (symbol == "-") then
return a-b
elseif (symbol == "*") then
return a*b
elseif (symbol == "/") then
return a/b
else
return "錯誤:未知符號類型"
end
end
print(Calculate(Shell_symbol, Shell_a, Shell_b))