2

来自 Lua 5.1 参考手册:

找到加载器后,require 使用单个参数 modname 调用加载器。如果加载器返回任何值,require 将返回的值分配给 package.loaded[modname]。如果加载器没有返回值并且没有为 package.loaded[modname] 分配任何值,则 require 将 true 分配给该条目。在任何情况下,require 都会返回 package.loaded[modname] 的最终值

在我看来,它意味着当你使用 require 和 success 时,package.loaded[modname]无论是 true 还是依赖于 loader 函数的 table 都必须有值返回

所以下面有我的测试

在此处输入图像描述

我的在哪里package.loaded["test"]?但是当我在 test.lua 中更改一行时

在此处输入图像描述

这是我的 Lua 解释器:

ZeroBraneStudioEduPack-1.40-win32/Project/Lua Interperter/Lua

对不起我的英语不好

PS
以上截图以全分辨率提供1、2

4

1 回答 1

1

ZeroBrane Studio 限制在 Watch 面板中检索和显示的内容的大小(由多个debugger.*设置控制)。在您的情况下,引用_G会返回一个大的有效负载,该有效负载会推出一些其他内容(它恰好会推出不同的内容,因为全局变量已经在 中列出_G,这就是为什么您看到的结果略有不同)。

尝试将以下内容添加为脚本中的第二行,package.loaded._G = nil您应该会看到显示的更多元素,并且两种情况下的结果将是一致的。

于 2017-02-01T19:37:41.787 回答