私は最近、文字列操作をいじって、文字列を 1 つだけ取り、答えを返す電卓を作成しようとしました。これを行うには単純に loadstring を使用できることはわかっていますが、文字列操作についてもっと学ぼうとしています。これは私がこれまでに持っているものです:もっと効率的にする方法はありますか?
function calculate(exp)
local x, op, y =
string.match(exp, "^%d"),
string.match(exp, " %D"),
string.match(exp, " %d$")
x, y = tonumber(x), tonumber(y)
op = op:sub(string.len(op))
if (op == "+") then
return x + y
elseif (op == "-") then
return x - y
elseif (op == "*") then
return x * y
elseif (op == "/") then
return x / y
else
return 0
end
end
print(calculate("5 + 5"))