这是我的代码
ModuleName.FunctionName.VariableName
我想知道这是否适用,我们都知道要在另一个模块中加载一个函数,你必须使用这个代码:
ModuleName.FunctionName
我想知道我的代码是否合适。
答案 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
可以是函数,表,字符串,数字,协同程序等。