Lua - 希望从另一个模块中调用 main.lua 中的函数。

我想从在 main.lua 中定义的函数中调用被 require(包含)在 main.lua 中的模块。最好/最清洁的方法是什么?

编辑:

最终我选择了使用 dispatch event。这似乎是一个不错的解决办法。

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

点赞
stackoverflow用户734069
stackoverflow用户734069

让它在全局表中可用。例如:

-- main.lua
require "myModule"

myModule.someFunc()

function mainFunc(...)
    -- ...
end

-- myModule.lua
module(myModule)

mainFunc(parameters)

只要模块不在本地定义相同的变量名称(如果这样做,您可以使用 _G.mainFunc 来获取它),那么您就应该没问题了。

2011-06-18 20:27:21
stackoverflow用户573255
stackoverflow用户573255

我能看到两个选择:

  1. 先定义函数A,然后 require() 模块,在其中调用函数A。
  2. require() 模块,让模块定义一个函数B,在你的主文件中调用函数A。在你准备调用它时(即函数A被定义),在你的主文件中调用函数B。

后者似乎更干净,但这将取决于个人喜好。

2011-06-18 22:20:10
stackoverflow用户6236
stackoverflow用户6236

将那个功能移动到一个独立的模块中。这是最清晰的方式。

否则,使用全局变量存储该函数。

2011-06-19 02:25:21