简介
我们将会使用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))