如何执行文本里的函数

在一些情况下,给定了计算公式,但是这是一个字符串,怎么应用这个计算呢?

在PHP里,有eval函数:

$a=3;
$b=12;
$str=’2*($a+$b)’;
$result=eval(“return $str;”);
echo $result;

在lua里,有loadstring函数:

jisuan1=”function jisuan1(x) return x+5 end”
if jisuan1~=nil then
loadstring(jisuan1)()
–assert(loadstring(jisuan1))() –检查返回是否为空,最后的括号表示执行。
print(jisuan1(6))
end

这样就可以适合与在数据库中存储了计算公式,到需要得到结果的时候调用计算,得到最终结果。

 

lua代码应用,jisuan数组保存了计算公式,i可以用于计算公式的偏移量。根据i的值就可以计算不同的公式。并且,jisuan公式里只写x的直接关系即可。

a=2
jisuan={“x+5″,nil,”x*3”}
i=1
if jisuan[i] ~= nil then
loadstring(“function jisuan(x) return “..jisuan[i]..” end”)()
–assert(loadstring(jisuan))()
print(jisuan(a))
else
print(a)
end

此条目发表在待分类分类目录。将固定链接加入收藏夹。