你现在正在访问的是萌娘百科用于保存和管理图片、音频等媒体文件的子项目萌娘共享,想要回到萌娘百科,请使用浏览器上的返回按钮、或点击这里
Module:Yesno
跳转到导航
跳转到搜索
简介
这个模块提供一个统一的布尔式输入界面。虽然Lua语言支持布尔式,但是维基代码只支持通过类似“yes”和“no”这样的字符串来表达布尔式。这个模块的作用就是将这类字符串转换为Lua语言中的布尔式。它同样可以返回无效的nil,从而将nil与false区分开来。这个模块同样支持其他的lua元素,比如布尔式、数字、表和函数。如果输入的值无法返回布尔式或者nil值,它同样可以返回一个默认值。
语法
yesno(value, default)
value是一个待测参数。布尔式一般由true和false两个值构成。空对象为nil。其他值则会返回default参数。
用法
首先,载入模块。注意,它只能为其他Lua模块调用而不能为模板调用。
local yesno = require('Module:Yesno')
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
val = type(val) == 'string' and mw.ustring.lower(val) or val -- put in lower case
if val == nil then
return nil
elseif val == false or val == 'no' or val == 'n' or val == 'false' or tonumber(val) == 0 then
return false
elseif val == true or val == 'yes' or val == 'y' or val == 'true' or tonumber(val) == 1 then
return true
else
return default
end
end