在当前模块中使用的另一个模块中的变量

时间:2014-04-01 05:23:08

标签: module lua corona

这是我的代码

ModuleName.FunctionName.VariableName

我想知道这是否适用,我们都知道要在另一个模块中加载一个函数,你必须使用这个代码:

ModuleName.FunctionName

我想知道我的代码是否合适。

3 个答案:

答案 0 :(得分:3)

您可以在另一个模块中使用变量,但语法与ModuleName.FunctionName.VariableName不同,因为函数没有字段。

例如,请考虑这个简单的模块foo.lua

local M = {}

function M.func()
    print("calling func")
end

M.var = 42

return M

请注意,与func()类似,变量var必须是全局的,或者它对模块是私有的。

您可以使用变量var,类似于使用函数func()的方式:

local foo = require "foo"

foo.func()

print(foo.var)

输出:

calling func
42

答案 1 :(得分:1)

有两种方法可以达到这个目的 1:

-- message.lua
local M = {}
function M.message()
    print("Hello")
end
return M

您可以将上述模块调用到其他文件中。

-- test.lua
local msg = require "message"
msg.message()

2:

--message.lua    
msg = "message"

您可以通过 dofile

调用上述模块
-- test.lua 
dofile ("/home/django/lua/message.lua")    -- you should provide complete path of message.lua
print(msg)

答案 2 :(得分:0)

函数没有字段,但表没有。所以你可以做到

ModuleName.FunctionName  -- a function in ModuleName 
ModuleName.VariableName  -- a variable in ModuleName
ModuleName.TableName.FieldName -- a field from a TableName which is in ModuleName

注意FieldName本身可以引用一个表,VariableName可以是函数,表,字符串,数字,协同程序等。