Module:Static
Jump to navigation
Jump to search
此模块返回一个表,此表存储的数据可在多次-{}-{{#invoke:}}
调用中读取。
示例
<syntaxhighlight lang='lua'> local p = {}
function p.main()
local static = require( 'Module:Static' ) static.x = ( static.x or 0 ) + 1 return static.x
end
return p </syntaxhighlight>
若Module:foo
使用了上述代码,然后使用{{ #invoke: foo | main }} {{ #invoke: foo | main }}
,将返回1 2
。
注意事项
由于此模块存储的值可以在页面范围内任意调用。为防止各模块间相互干扰,模块必须在自身命名空间(为一子表,见下文)下存储数据,且绝不能修改其他命名空间下的数据。
例如,在Module:Example中: <syntaxhighlight lang='lua'> ...
local static = require( 'Module:Static' ) if not static.Example then static.Example = {} end static.Example.exampleData = 3
... </syntaxhighlight>
模块通过此模块存储的数据,必须置于与模块本身名称一致的子表中(模块名称首字母必须大写,且将空格替换为下划线)。这个子表应当在调用此模块后立即初始化。
如果希望存储全局数据,从而方便其他模块调用或存储,则命名空间应为_global
。
若使用了全局变量,则必须在下方表格中注册:
变量名称 | 读取模块 | 写入模块 | 类型 | 备注 |
---|
-- Source: https://runescape.wiki/w/Module:Static
local mwHtml = getmetatable( mw.html.create() )
mwHtml._static = mwHtml._static or {}
return mwHtml._static