请输入您要查询的百科知识:

 

词条 Module:CallAssert
释义

local function pack(...)

return {...}, select('#', ...)

end

local function mapArray(func, array, count)

local result = {}

for i = 1, count or #array do

result[i] = func(array[i])

end

return result

end

local function quote(value)

if type(value) == 'string' then

return (string.gsub(string.format('%q', value), '\\\\\', '\\\')) -- Outer parentheses remove second value returned by gsub

end

local str = tostring(value)

if type(value) == 'table' and str ~= 'table' then

return '{' .. str .. '}'

end

return str

end

local function callAssert(func, funcName, ...)

local result, resultCount = pack(func(...))

if not result[1] then

local args, argsCount = pack(...)

args = mapArray(quote, args, argsCount)

local message = mw.ustring.format(

'%s(%s) failed',

funcName,

table.concat(args, ', ')

)

error(message, 2)

end

return unpack(result, 1, resultCount)

end

return callAssert

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/10 11:07:47