模块:Loop/doc

来自秋水雁翎
秋水雁翎讨论 | 贡献2024年4月26日 (五) 13:10的版本 (创建页面,内容为“== 简介 == 该模块可以循环执行语句。相较于解析器函数,因为使用Lua模块进行循环,所以'''没有100次上限的限制'''。 用法和功能与{{tl|loop}}类似,但可以处理模板的接收参数(也即被三对大括号包裹的参数,如<code><nowiki>{{{1}}}</nowiki></code>) == 用法 == 注意: * 第一层循环的代码需要用<code><nowiki><nowiki></nowiki></code>标签包裹。 * 多层循环中内层循环的…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

这是模块:Loop的文档页面

简介

该模块可以循环执行语句。相较于解析器函数,因为使用Lua模块进行循环,所以没有100次上限的限制

用法和功能与{{loop}}类似,但可以处理模板的接收参数(也即被三对大括号包裹的参数,如{{{1}}}

用法

注意:

  • 第一层循环的代码需要用<nowiki>标签包裹。
  • 多层循环中内层循环的代码不需要<nowiki>标签包裹。
loop
{{#invoke:loop|main| 自增/减变量名 = 初始值 | 最大值 | 自增/减量 |do= <nowiki>
循环执行的代码...
</nowiki>}}
  • main亦可作loopfor
  • 使用自增/减变量的写法为:{{#var:变量名}},如:{{#var:time}}
  • 默认的自增/减量在初始值小于最大值为1,在初始值大于最大值时为-1。
while/dowhile
{{#invoke:loop|while| condition = <nowiki>循环条件</nowiki> |do= <nowiki>
循环执行的代码...
</nowiki>}}
{{#invoke:loop|dowhile| condition = <nowiki>循环条件</nowiki> |do= <nowiki>
循环执行的代码...
</nowiki>}}
fornumargs
{{#invoke:loop|fornumargs| 变量名前缀 | 索引变量名 | 值变量名 |<nowiki>
循环执行的代码...
</nowiki>}}

示例

示例1

{{#vardefine:count|0}}<!--
-->{{#invoke:loop|main|time=1|101|do=
<nowiki>{{#vardefine:count| {{#expr: {{#var:count}} + {{#var:time}} }} }}</nowiki> }}
结果:{{#var:count}}

Lua错误 在package.lua的第80行:module 'Module:Arguments' not found 结果:0

示例2

{{#vardefine:count|0}}<!--
-->{{#invoke:loop|main|time1=1|5|do=<nowiki>
  {{#invoke:loop|main|time2=1|100|do=
    {{#vardefine:count| {{#expr: {{#var:count}} + {{#var:time1}} * {{#var:time2}} }} }}
  }}
</nowiki>}}
结果:{{#var:count}}

Lua错误 在package.lua的第80行:module 'Module:Arguments' not found 结果:0

示例3

{{#invoke:loop|main|time=1|5
|do=<nowiki>
{{#expr:{{#var:time}} + {{{1|0}}} }}{{{split|、}}}
</nowiki>
}}

Lua错误 在package.lua的第80行:module 'Module:Arguments' not found