别人可以完美运行我的 Lua 代码,但我却遇到了错误?

我有一个Lua脚本一直在尝试让它工作。这是我的第一个Lua脚本。我请别人运行我的代码,他们运行得很好。然而,当我尝试在任何地方运行它(我尝试在Ideone.com、codepad.com、lExecutor、Garry's Mod等地方运行它),都会出现相同的错误消息。错误消息是“尝试将nil与数字进行比较”,并且出现在第4行。如果有帮助的话,我的操作系统是Windows 7。我的代码如下,我要求你们测试它是否正常工作。如果可能的话,还要说明你们用来运行它的是什么。基本上它的意思是会出现一个输入框,用户必须输入他们的年龄。如果年龄超过或低于12岁,它会说你太老/太年轻了,如果是12岁,它会说“欢迎,孩子!”。

io.write("请输入您的年龄:")
age = io.read()
age = tonumber(age)
if age < 12 then
    print("哦,不好意思,您太年轻了!")
elseif age > 12 then
    print("哦,不好意思,您太老了!")
else
    print("欢迎,孩子!")
end
点赞
用户5087125
用户5087125

io.read() 从标准输入中读取数据,所以如果你在命令行上运行脚本,它会起作用。它仅仅只是从标准输入中读取数据,无法打开输入框。在你尝试运行代码的环境中,一般是没有标准输入的,因此 age 没有被赋值,你会得到一个错误。

2015-07-08 01:25:38
用户1009479
用户1009479

代码本身是没有问题的。问题在于,如果你在像 Ideone 这样的网站上试用它,在没有提供输入的情况下,age 将得不到输入,因此它的值是 nil,从而导致错误。

Ideone 上的演示,请注意 stdin 部分。

2015-07-08 01:26:12