使用 LuaEdit 的 io 库

我知道这是一个非常基础的问题,但我已经在互联网上搜索了几天,仍然找不到答案。我刚开始学习 Lua,打算写一个基于文本的冒险游戏。我正在使用 LuaEdit 编辑我的 Lua 代码,但我不能使用 io 命令。如果我在 Lua 命令行上输入 io.read(),它可以工作,但在编辑器上不行。在互联网上搜索了之后,我找不到如何导入这个库的方法。

原文链接 https://stackoverflow.com/questions/9564305

点赞
stackoverflow用户72944
stackoverflow用户72944

将下面翻译成中文并且保留原本的 markdown 格式

该库默认情况下不需要导入。您的环境可能已禁用它,但无论如何,当您尝试使用 io.* 时看到错误消息并了解您的编辑器将有所帮助。

2012-03-05 09:56:38
stackoverflow用户577603
stackoverflow用户577603

可能 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 中的解释器。

2012-03-05 09:59:29
stackoverflow用户1295837
stackoverflow用户1295837

我是 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()

希望这能帮到你!

2012-03-27 15:17:04
stackoverflow用户2121237
stackoverflow用户2121237

我认为你要找的函数是 os.read() 而不是 io.read()

如果你是在玩像 Tekkit(一个 Minecraft 模组)这样的游戏中使用 Lua 进行编码,那么你会用到 io.read(),因为那是该游戏提供的 API。

然而,在命令行中使用 Lua 时,你必须使用不同的 API,也就是 os 包中的函数。

2013-02-28 20:43:15