查看“Module:Yesno/doc”的源代码
←
Module:Yesno/doc
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您必须确认您的电子邮件地址才能编辑页面。请通过
参数设置
设置并确认您的电子邮件地址。
您可以查看和复制此页面的源代码。
本模块提供用于处理布尔值或形如布尔值的字符串输入的一致接口。Lua允许布尔值<code>true</code>和<code>false</code>,wiki代码则只能用像yes、no这样的词语来表达布尔值。本模块处理这些字符串并将其转化为布尔值,以供Lua处理。对于<code>nil</code>值依旧返回<code>nil</code>,以允许区分<code>nil</code>和<code>false</code>。本模块同样接受其他的Lua结构输入,如布尔值、数字、表、函数。如果传入的值不能被理解为布尔值或<code>nil</code>,可以指定一个要返回的默认值。 == 语法 == <syntaxhighlight lang="lua">yesno(value, default)</syntaxhighlight> <code>value</code>是需要测试的值。布尔值输入或类似于布尔值的输入(见下方)总是视为<code>true</code>或<code>false</code>,<code>nil</code>总是视为<code>nil</code>。其他的值一律取<code>default</code>。 == 用法 == 首先加载模块。注意只能由其他Lua模块加载,而不是一般的wiki页面。对于一般的wiki页面可以使用{{tl|yesno}}。 <syntaxhighlight lang="lua"> local yesno = require('Module:Yesno') </syntaxhighlight> 一些输入总是返回<code>true</code>,一些则是返回<code>false</code>。<code>nil</code>值总是返回<code>nil</code>。 <syntaxhighlight lang="lua"> -- 这些总是返回true: yesno('yes') yesno('y') yesno('true') yesno('1') yesno(1) yesno(true) yesno('是') yesno('开') yesno('開') -- 这些总是返回false: yesno('no') yesno('n') yesno('false') yesno('0') yesno(0) yesno(false) yesno('否') yesno('关') yesno('關') -- nil值总是返回nil: yesno(nil) </syntaxhighlight> 一些值在匹配之前转化为小写: <syntaxhighlight lang="lua"> -- 这些总是返回true: yesno('Yes') yesno('YES') yesno('yEs') yesno('Y') yesno('tRuE') -- 这些总是返回false: yesno('No') yesno('NO') yesno('nO') yesno('N') yesno('fALsE') </syntaxhighlight> === 未定义值 === 如果yesno收到一个上面没有列出的输入值,你可以指定一个默认值。如果不提供默认值,则这些输入会返回<code>nil</code>。 <syntaxhighlight lang="lua"> -- 这些会返回nil: yesno('foo') yesno({}) yesno(5) yesno(function() return '这是函数' end) -- 这些会返回true: yesno('foo', true) yesno({}, true) yesno(5, true) yesno(function() return '这是函数' end, true) -- 这些返回字符串"bar": yesno('foo', 'bar') yesno({}, 'bar') yesno(5, 'bar') yesno(function() return '这是函数' end, 'bar') </syntaxhighlight> 注意空白字符串也是如此: <syntaxhighlight lang="lua"> yesno('') -- Returns nil. yesno('', true) -- Returns true. yesno('', 'bar') -- Returns "bar". </syntaxhighlight> 尽管空字符串在维基文本中的计算结果通常为false,但在Lua中的仍是视为true。该模块倾向于Lua行为而不是维基文本行为。如果将空白字符串视为false 对您的模块很重要,则您需要在处理的早期阶段删除空白参数,例如[[Module:Arguments]]就会默认移除空白参数。 === 处理nil === 根据定义, :<syntaxhighlight lang="lua"> yesno(nil) -- Returns nil. yesno('foo') -- Returns nil. yesno(nil, true) -- Returns nil. yesno(nil, false) -- Returns nil. yesno('foo', true) -- Returns true. </syntaxhighlight> 要返回仅有<syntaxhighlight lang="lua" inline>true/false</syntaxhighlight>的二元值,使用这样的代码: <syntaxhighlight lang="lua"> myvariable = yesno(value) or false -- 若value为nil,则结果为false。 myvariable = yesno(value) or true -- 若value为nil,则结果为true。 myvariable = yesno('foo') or false -- 未知字符串返回nil,结果为false。 myvariable = yesno('foo', true) or false -- 应用默认值(此处为true),结果为true。 </syntaxhighlight><includeonly>{{sandbox other|| [[Category:元模块]] }}</includeonly>
该页面使用的模板:
Template:Template link
(
查看源代码
)
Template:Tl
(
查看源代码
)
返回
Module:Yesno/doc
。
导航菜单
个人工具
中文
创建账号
登录
命名空间
模块
讨论
不转换
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
上传文件
特殊页面
页面信息