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

Module 要在当前模块中使用的另一个模块中的变量,module,lua,coronasdk,Module,Lua,Coronasdk,这是我的密码 ModuleName.FunctionName.VariableName 我想知道这是否适用,我们都知道,要在另一个模块中加载函数,必须使用以下代码: ModuleName.FunctionName 我想知道我给出的代码是否适用。您可以在另一个模块中使用变量,但语法与ModuleName.FunctionName.VariableName不同,因为函数没有字段 作为一个例子,考虑这个简单的模块 Fo.Lua: local M = {} function M.func()

这是我的密码

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

ModuleName.FunctionName

我想知道我给出的代码是否适用。

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

作为一个例子,考虑这个简单的模块<代码> Fo.Lua<代码>:

local M = {}

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

M.var = 42

return M
请注意,与
func()
类似,变量
var
必须是全局变量,或者是模块的专用变量

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

输出:

calling func
42

有两种方法可以实现这一点。
1:

-- message.lua local M = {} function M.message() print("Hello") end return M
函数没有字段,但表有字段。所以你可以

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
可以是一个函数、表、字符串、数字、协同程序等

-- test.lua local msg = require "message" msg.message() --message.lua msg = "message" -- test.lua dofile ("/home/django/lua/message.lua") -- you should provide complete path of message.lua print(msg)
ModuleName.FunctionName  -- a function in ModuleName 
ModuleName.VariableName  -- a variable in ModuleName
ModuleName.TableName.FieldName -- a field from a TableName which is in ModuleName