全站通知:

模块:Static

来自星露谷物语维基
跳到导航 跳到搜索

此模块返回一个表,此表存储的数据可在多次{{#invoke:}}调用中读取。

示例

local p = {}

function p.main()
    local static = require( 'Module:Static' )
    static.x = ( static.x or 0 ) + 1
    return static.x
end

return p

Module:foo使用了上述代码,然后使用{{ #invoke: foo | main }} {{ #invoke: foo | main }},将返回1 2

注意事项

由于此模块存储的值可以在页面范围内任意调用。为防止各模块间相互干扰,模块必须在自身命名空间(为一子表,见下文)下存储数据,且绝不能修改其他命名空间下的数据。

例如,在Module:Example中:

...
    local static = require( 'Module:Static' )
    if not static.Example then
        static.Example = {}
    end
    static.Example.exampleData = 3
...

模块通过此模块存储的数据,必须置于与模块本身名称一致的子表中(模块名称首字母必须大写,且将空格替换为下划线)。这个子表应当在调用此模块后立即初始化。

如果希望存储全局数据,从而方便其他模块调用或存储,则命名空间应为_global

若使用了全局变量,则必须在下方表格中注册:

变量名称 读取模块 写入模块 类型 备注
[ 查看 | 编辑 | 历史 | 刷新 ]上述文档的内容来自模块:Static/doc
-- Source: https://runescape.wiki/w/Module:Static
local mwHtml = getmetatable( mw.html.create() )
mwHtml._static = mwHtml._static or {}
return mwHtml._static