<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.statsape.com/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3AParamtest</id>
	<title>模块:Paramtest - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.statsape.com/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3AParamtest"/>
	<link rel="alternate" type="text/html" href="https://wiki.statsape.com/index.php?title=%E6%A8%A1%E5%9D%97:Paramtest&amp;action=history"/>
	<updated>2026-04-03T22:58:31Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.statsape.com/index.php?title=%E6%A8%A1%E5%9D%97:Paramtest&amp;diff=1550&amp;oldid=prev</id>
		<title>2023年8月9日 (三) 16:27 Zeroclanzhang</title>
		<link rel="alternate" type="text/html" href="https://wiki.statsape.com/index.php?title=%E6%A8%A1%E5%9D%97:Paramtest&amp;diff=1550&amp;oldid=prev"/>
		<updated>2023-08-09T16:27:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Imported from: https://runescape.wiki/w/Module:Paramtest&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
{{Helper module&lt;br /&gt;
|name=Paramtest&lt;br /&gt;
|fname1 = is_empty(arg)&lt;br /&gt;
|ftype1 = String&lt;br /&gt;
|fuse1 = Returns true if arg is not defined or contains only whitespace&lt;br /&gt;
|fname2 = has_content(arg)&lt;br /&gt;
|ftype2 = String&lt;br /&gt;
|fuse2 = Returns true if arg exists and does not only contain whitespace&lt;br /&gt;
|fname3 = default_to(arg1,arg2)&lt;br /&gt;
|ftype3 = String, Any value&lt;br /&gt;
|fuse3 = If arg1 exists and does not only contain whitespace, the function returns arg1, otherwise returns arg2&lt;br /&gt;
|fname4 = defaults{ {arg1,arg2},...}&lt;br /&gt;
|ftype4 = {String, Any value}...&lt;br /&gt;
|fuse4 = Does the same as &amp;lt;code&amp;gt;default_to()&amp;lt;/code&amp;gt; run over every table passed&lt;br /&gt;
|fname5 = table_is_empty(arg)&lt;br /&gt;
|ftype5 = Table&lt;br /&gt;
|fuse5 = Returns true if the table has no content, it does not check if the content of the table contains anything&lt;br /&gt;
|fname6 = table_has_content(arg)&lt;br /&gt;
|ftype6 = Table&lt;br /&gt;
|fuse6 = returns true if the table has content, it does not check if the content of the table contains anything&lt;br /&gt;
}}&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
local checkType, checkTypeForNamedArg&lt;br /&gt;
do&lt;br /&gt;
	local _libraryUtil = require(&amp;quot;libraryUtil&amp;quot;);&lt;br /&gt;
	checkType = _libraryUtil.checkType;&lt;br /&gt;
	checkTypeForNamedArg = _libraryUtil.checkTypeForNamedArg;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Tests basic properties of parameters&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Tests if the parameter is empty, all white space, or undefined&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
function p.is_empty(arg)&lt;br /&gt;
	return not string.find(arg or &amp;#039;&amp;#039;, &amp;#039;%S&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Tests if the table parameter is empty&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
function p.table_is_empty(arg)&lt;br /&gt;
	for _, _ in pairs(arg) do&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	return true&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Returns the parameter if it has any content, the default (2nd param)&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
function p.default_to(arg, default)&lt;br /&gt;
	if string.find(arg or &amp;#039;&amp;#039;, &amp;#039;%S&amp;#039;) then&lt;br /&gt;
		return arg&lt;br /&gt;
	else&lt;br /&gt;
		return default&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Returns a list of paramaters if it has any content, or the default&lt;br /&gt;
--&lt;br /&gt;
function p.defaults(args)&lt;br /&gt;
	checkType(&amp;quot;defaults&amp;quot;, 1, args, &amp;quot;table&amp;quot;);&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	for i, v in ipairs(args) do&lt;br /&gt;
		checkTypeForNamedArg(&amp;quot;defaults&amp;quot;, i, v, &amp;quot;table&amp;quot;);&lt;br /&gt;
		ret[i] = p.default_to(v[1], v[2]);&lt;br /&gt;
	end&lt;br /&gt;
	return unpack(ret, 1, #args);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Tests if the parameter has content&lt;br /&gt;
-- The same as !is_empty, but this is more readily clear&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
function p.has_content(arg)&lt;br /&gt;
	return string.find(arg or &amp;#039;&amp;#039;, &amp;#039;%S&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Tests if the table parameter has content&lt;br /&gt;
-- The same as !table_is_empty, but this is more readily clear&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
function p.table_has_content(arg)&lt;br /&gt;
	for _, _ in pairs(arg) do&lt;br /&gt;
		return true&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- uppercases first letter&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
function p.ucfirst(arg)&lt;br /&gt;
	if not arg or arg:len() == 0 then&lt;br /&gt;
		return nil&lt;br /&gt;
	elseif arg:len() == 1 then&lt;br /&gt;
		return arg:upper()&lt;br /&gt;
	else&lt;br /&gt;
		return arg:sub(1,1):upper() .. arg:sub(2)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- uppercases first letter, lowercases everything else&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
function p.ucflc(arg)&lt;br /&gt;
	if not arg or arg:len() == 0 then&lt;br /&gt;
		return nil&lt;br /&gt;
	elseif arg:len() == 1 then&lt;br /&gt;
		return arg:upper()&lt;br /&gt;
	else&lt;br /&gt;
		return arg:sub(1,1):upper() .. arg:sub(2):lower()&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Zeroclanzhang</name></author>
	</entry>
</feed>