紹介#
私たちは Lua を使用して、シンプルな逆ポーランド記法のターミナル計算機を実装します。
開始#
Lua では、コンソールからの入力を取得することは非常に簡単です。コンソールからの入力は Lua では配列arg[]
になりますので、直接取得するだけです。
lua compute.lua + 1 2
上記のコンソールでは、"+"、"1"、"2" の 3 つの入力を行いました。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))