• 欢迎来到THBWiki!如果您是第一次来到这里,请点击右上角注册一个帐户
  • 有任何意见、建议、求助、反馈都可以在 讨论板 提出
  • THBWiki以专业性和准确性为目标,如果你发现了任何确定的错误或疏漏,可在登录后直接进行改正

模块:libargs

来自THBWiki
跳到导航 跳到搜索
[创建] Template-info.svg 模块文档
local libargs = {}

function libargs.namedDict(args,names)
	local n = {}
	for i = 1, #names do
	    n[names[i]] = args[names[i]]
	end
    return n
end

function libargs.namedList(args,names)
	local n = {}
	for i = 1, #names do
	    n:insert(args[names[i]])
	end
    return n
end

function libargs.strip(str)
    str = mw.text.trim(str)
    return str
end

function libargs.inject(func, args, limit)
    if (limit == nil) then
        return func(unpack(args))
    end 
    limit = tonumber(limit)
    local newArgs = {}
    for i=1, #args do
        newArgs[i] = args[i]
        if (i > limit) then
            break
        end
    end
    return func(unpack(newArgs))
end

function libargs.typed(oriArgs, typeDefs)
    local typedArgs = {}
    for i = 1, #typeDefs do
        local typeDef = typeDefs[i]
        if (typeDef == "str") then
            typedArgs[i] = libargs.strip(tostring(oriArgs[i]))
        elseif (typeDef == "int") then
            typedArgs[i] = tonumber(oriArgs[i])
        else
            typedArgs[i] = oriArgs[i]
        end
    end
    return typedArgs
end

return libargs