【发布时间】:2014-04-01 05:23:08
【问题描述】:
这是我的代码
ModuleName.FunctionName.VariableName
我想知道这是否适用,我们都知道要在另一个模块中加载一个函数,您必须使用以下代码:
ModuleName.FunctionName
我想知道我给定的代码是否适用。
【问题讨论】:
这是我的代码
ModuleName.FunctionName.VariableName
我想知道这是否适用,我们都知道要在另一个模块中加载一个函数,您必须使用以下代码:
ModuleName.FunctionName
我想知道我给定的代码是否适用。
【问题讨论】:
您可以在另一个模块中使用变量,但语法不像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 :
您可以将上面的模块调用到其他文件中。
--test.lua 本地味精 = 需要“消息” msg.message()2:
--message.lua msg = "消息"您可以通过 dofile 调用以上模块
【讨论】:
函数没有字段,但表有。所以你可以这样做
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 可以是函数、表、字符串、数字、协程等。
【讨论】: