邱 璇洛 (ゝ∀・)

邱 璇洛 (ゝ∀・)

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

5分間でLuaコンソールプログラムを作成する

紹介#

私たちは 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))
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。