今天是2024年11月18日 第47周 星期一

代人,时大变了。

我们生活在大地上,但我们的梦想超越天空。

變更

跳至導覽 跳至搜尋
增加 1,382 位元組 、 2022年11月8日 (二) 23:52
已保护“Module:Var-array”:​高流量页面([编辑=仅允许管理员和技术编辑员](无限期)[移动=仅允许管理员](无限期))
local module = {}

function module.new(name, array)
local frame = mw.getCurrentFrame()
local idCount = frame:callParserFunction( '#var', 'array.idCount', 0)
function foo(name, array)
name = '@array-innerArrayIdentifier:'..name
frame:callParserFunction( '#vardefine', name, name)
for i, v in ipairs(array) do
if type(v) == 'table' then
idCount = idCount + 1
local innerArrayName = name..'___'..idCount..'___'
foo(innerArrayName, v)
v = '@array-innerArrayIdentifier:'..innerArrayName
end
frame:callParserFunction( '#vardefine', name..i, v)
end
frame:callParserFunction( '#vardefine', name..'.count', #array)
end
foo(name, array)

frame:callParserFunction( '#vardefine', 'array.idCount', idCount)
return name
end

function module.get(name)
local frame = mw.getCurrentFrame()
if type(name) == 'nil' then return nil end
local time = 0
function foo(name)
local array = {}

time = time + 1
if time == 1 then
name = '@array-innerArrayIdentifier:'..name
end

local count = frame:callParserFunction( '#var', name..'.count')
if count == '' then return false end
for i=1, count do
local val = frame:callParserFunction('#var', name..i)
if string.find(val, '^@array%-innerArrayIdentifier:') then
array[i] = foo(val)
else
array[i] = val
end
end
return array
end

return foo(name)
end

return module
匿名使用者

導覽選單