我知道这是一个非常基本的问题,但我已经在互联网上搜索了几天,但我仍然找不到答案。我刚刚开始学习Lua,我将编写一个基于文本的冒险游戏。我正在使用LuaEdit来编辑我的Lua代码但是我不能使用io命令。在Lua命令行上,如果我键入io.read()但它在编辑器上不起作用。在搜索互联网后,我找不到如何导入库。
答案 0 :(得分:4)
可能是LuaEdit没有使用I / O库进行编译。您可以使用
之类的内容进行检查if(type(io) ~= "table") then
print("I/O not available :(");
else
print("We have I/O!");
end
如果默认不存在,您可以尝试通过模块系统手动加载
local io = require("io");
但最终由编译成LuaEdit的解释器决定是否有效。
答案 1 :(得分:1)
默认情况下不需要导入库。您的环境可能已将其禁用 - 但无论哪种方式,都会看到当您尝试使用io时发生的错误消息。*并且您知道您的编辑器会有所帮助。
答案 2 :(得分:0)
我是创建者,目前只是LuaEdit的开发者,我可以向你确认io.read()目前还没有在LuaEdit中模拟。我还在Windows 7和Vista下尝试了以下lua代码,从LuaEdit运行时它没有任何问题:
if(type(io) ~= "table") then
print("I/O not available :(");
else
print("We have I/O!");
end
file = io.open("c:\\test.txt", "w")
file:write("We have IO writing to disk!")
file:close()
我希望这有帮助!
答案 3 :(得分:0)
我相信os.read()
是您正在寻找的功能,而不是io.read()
。
如果您使用Tekkit(一个Minecraft mod)等游戏在Lua中编码,那么您将io.read()
,因为这是他们在那里提供的API。
但是,从命令行使用Lua时,必须使用其他API,即os
包中的函数。