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