邱 璇洛 (ゝ∀・)

邱 璇洛 (ゝ∀・)

你好哇(*゚∀゚*)~这里是邱璇洛的博客,常常用来记录一些技术文章和小日常~(σ゚∀゚)σ
twitter
tg_channel

在5分鐘內完成一個Lua控制台程式

簡介#

我們將使用 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))
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。