还请教一下,在LUA语言中如何计算加减法运算?

计算的结果如何输出在输入框里面,就像输入文字一样??谢谢
2025-05-22 00:33:47
推荐回答(2个)
回答1:

Lua 作为一个 解释型脚本 语言 可以非常容易的 动态执行一些代码(也就是根据动态获取的字符串作为代码去编译)。

 

这样,很容易写出 一个 简单的输入型计算器。

 
local function main ()
    io.write("Please input a numeric expression: ")
    local msg =  io.read()
    f = loadstring("return "..msg)
    print( f() );
end
main()
--[[
input: 1 - 1/3 + 1/5 - 1/7
print: 0.72380952380952
input: "abc".."xyz"
print: abcxyz
input: os.time()
print: 1375383363
input: "hack"..os.execute("echo it's very dangerous.").."code"
print: abcxyz
--]]

 

但是,如果没有实现系统函数的权限和安全性控制的封装,直接把程序暴漏给用户,也许这种灵活性 会带来一些无法挽回的损失

 

比如注释中最后一个事例,用户变调用了 本地(windows系统)可执行命令,试想如果这条命令不是简单输出一段字符串,而是格式化整个磁盘,异或是下载木马,那么后果是不可估量的。

回答2:

例子:
include
int main()
{
char a[15]={"windows98"};
printf("%s\n",a+7);
return 0;
}

LUA语言中
#include
int main()
{
char a[15]={"windows98"};
printf("%s\n",a+7); // a+7相当于&a[7],也就是从a的首地址偏移7个位置,结果是:98
return 0;
}