邱 璇洛 (ゝ∀・)

邱 璇洛 (ゝ∀・)

你好哇(*゚∀゚*)~这里是邱璇洛的博客,常常用来记录一些技术文章和小日常~(σ゚∀゚)σ
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))
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。