Module 为什么这个模块只有部分注册功能可用?
问题是,如果Module 为什么这个模块只有部分注册功能可用?,module,lua,Module,Lua,问题是,如果require()it,则只有前两个函数(charbytes和len)可用。其余部分不可用,尽管已定义 我用一个非常简单的脚本对此进行了测试: utf8=需要(“utf8”) 打印(utf8.len,utf8.sub) 它返回:函数:0xsomeaddress nil。为什么会这样?Lua5.3有一个utf8模块,它已经加载了,所以require(“utf8”)实际上对模块没有任何作用。对我来说工作正常。模块代码看起来不错。@Pigger我发现问题在于Lua 5.3单独装运和ut
require()
it,则只有前两个函数(charbytes
和len
)可用。其余部分不可用,尽管已定义
我用一个非常简单的脚本对此进行了测试:
utf8=需要(“utf8”)
打印(utf8.len,utf8.sub)
它返回:
函数:0xsomeaddress nil
。为什么会这样?Lua5.3有一个utf8
模块,它已经加载了,所以require(“utf8”)
实际上对模块没有任何作用。对我来说工作正常。模块代码看起来不错。@Pigger我发现问题在于Lua 5.3单独装运和utf8
模块,基本上require(“utf8”)
重新加载该模块,而不是我的自定义模块。只需将文件重命名为其他文件,如my_utf8.luaNot“更高优先级”,但“已加载”。如果您“卸载”(或从不首先加载)内置模块,则外部模块将正常工作。require避免多次加载模块。因此它实际上不会重新加载内置模块。它将简单地拒绝加载您的模块,因为utf8已经加载。有关详细信息,请参见Lua参考中的模块部分。