【问题标题】:Overriding function in module in Lua 5.1Lua 5.1 模块中的覆盖函数
【发布时间】:2016-07-23 14:39:48
【问题描述】:

我正在编写一个 Lua 程序,其中有很多相互独立的模块。每个模块都将相关的源文件保存在其文件夹中。我想要的是覆盖每个模块中的require 函数,以便在调用require 时,加载模块文件夹中的文件。

假设我有下面的模块,每个模块都有一个名为utils.lua的文件:

src
├── module1
│   ├── main.lua
│   └── utils.lua
├── module2
│   └── utils.lua
├── module3
│   └── utils.lua
└── utils.lua

我正在写module1.main。我想要写类似的东西

require 'utils' -- load module1.utils actually.

-- Do something...

有什么好主意吗?

注意:我需要require,因为我有一些自定义搜索器。

【问题讨论】:

    标签: lua


    【解决方案1】:

    为什么不写?

    local utils = require "module1.utils"
    

    如果您不选择这样做,更改 require 行为的正确方法是将您自己的函数添加到 package.loaders

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多