【发布时间】:2023-01-12 01:18:35
【问题描述】:
这个问题对Evaluating expression in Lua in Mathematics Environment的问题有一些参考 以下代码有效。
tbl = {}
tbl.sin = math.sin
tbl.cos = math.cos
function mathEval(exp)
return load("return " .. exp, exp, "t", tbl)()
end
print(mathEval("sin(0)"))
print(mathEval("sin(0)+cos(1)+2^2"))
但是,以下代码不起作用。
tbl = {}
tbl.sin = math.sin
tbl.cos = math.cos
function mathEval(exp)
return load("return " .. tostring(exp), tostring(exp), "t", tbl)()
end
print(mathEval(sin(0)))
print(mathEval(sin(0)+cos(1)+2^2))
我想在不使用引号的情况下评估表达式。那怎么办?
【问题讨论】:
-
应该在回答之前要求澄清,但为什么有这些限制?你能直接评估表达式吗?
r = sin(0)+cos(1)+2^2?您可以修改表达式以访问您的 tbl (tbl.sin(0)+tbl.cos(1)+2^2) 吗?
标签: lua environment-variables environment evaluation