本站页面(多半)转载自萌娘百科的同名页面,依CC BY-NC-SA 3.0引入,贡献者可以在历史页查询。
因各种原因页面内容可能和源页面有所出入,非本站特有页面内容请以萌娘百科为准。
因各种原因页面内容可能和源页面有所出入,非本站特有页面内容请以萌娘百科为准。
- 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
- 本镜像站和其他萌娘百科的镜像站无关,请注意分别。
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