Template:Loop/doc:修订间差异

H萌娘,万物皆可H的百科全书!
跳到导航 跳到搜索
imported>850710247liu
(创建页面,内容为“== 简介 == 该模板可以循环执行语句。相较于解析器函数,因为使用Lua模块进行循环,所以'''没有100次上限的限制'''。 == 用…”)
 
imported>=海豚=
(文本替换 - 替换“<br>”为“<br/>”)
 
(未显示同一用户的1个中间版本)
第82行: 第82行:
 替换过程中进行的更改以'''粗体'''标注。
 替换过程中进行的更改以'''粗体'''标注。
#若有使用<code>#loop</code>的代码如下:
#若有使用<code>#loop</code>的代码如下:
#:<div class="mw-code"><nowiki>{{</nowiki>'''#loop:'''<nowiki>i|5|10|{{#var:i}}<br />}}</nowiki></div>
#:<div class="mw-code"><nowiki>{{</nowiki>'''#loop:'''<nowiki>i|5|10|{{#var:i}}<br/>}}</nowiki></div>
#将<code>#loop:</code>替换为<code>loop/auto|</code>:
#将<code>#loop:</code>替换为<code>loop/auto|</code>:
#:<div class="mw-code"><nowiki>{{</nowiki>'''subst:loop/auto|'''<nowiki>i|5|10|{{#var:i}}<br />}}</nowiki></div>
#:<div class="mw-code"><nowiki>{{</nowiki>'''subst:loop/auto|'''<nowiki>i|5|10|{{#var:i}}<br/>}}</nowiki></div>
#点击保存,原内容被替换为
#点击保存,原内容被替换为
#:<pre>{{#invoke:loop|main|i=5|14|do=<nowiki><nowiki></nowiki>{{#var:i}}<br /><nowiki></no</nowiki>wiki> }}</pre>
#:<pre>{{#invoke:loop|main|i=5|14|do=<nowiki><nowiki></nowiki>{{#var:i}}<br/><nowiki></no</nowiki>wiki> }}</pre>


<includeonly>[[分类:功能模板]]</includeonly><noinclude>[[分类:模板说明文件]]</noinclude>
<includeonly>[[分类:功能模板]]</includeonly><noinclude>[[分类:模板说明文件]]</noinclude>

2021年4月18日 (日) 19:17的最新版本

简介[编辑源代码]

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

用法[编辑源代码]

{{loop | 自增/减变量名 = 初值 | 终值 | 自增/减量 |do= <nowiki>
循环执行的代码...
</nowiki>}}

其中,使用自增/减变量的写法为:{{#var:变量名}},如:{{#var:time}}

默认的自增/减量在初值小于终值为1,在初值大于终值时为-1。

注意:

  • 第一层循环的代码需要用<nowiki>标签包裹
  • 多层循环中内层循环的代码不需要<nowiki>标签包裹

由于使用{{loop}}调用时,上下文会被更改为{{loop}},因此被<nowiki>标签包裹的代码将无法正常接收模板的接收参数(也即被三对大括号包裹的参数,如{{{1}}}

如果需要使用传入的模板接收参数,可以改为直接调用模块:Loop,具体方法为:将{{loop|...}}替换为{{#invoke:loop|main|...}}

示例[编辑源代码]

示例1[编辑源代码]

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

结果:5151

示例2[编辑源代码]

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

结果:75750

示例3[编辑源代码]

当需要使用模板的接收参数时,请直接调用模块:Loop

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

1、2、3、4、5、

若以上代码位于某模板中,则:

  • {{模板名称}}的结果为:1、2、3、4、5、
  • {{模板名称|2}}的结果为:3、4、5、6、7、
  • {{模板名称|2|split=@}}的结果为:3@4@5@6@7@

与解析器函数的替换[编辑源代码]

本模板的参数与#loop略有不同,你可以通过一下方法快速替换:

  1. #loop:替换为subst:loop/auto|
  2. 点击“保存更改”。

例子[编辑源代码]

替换过程中进行的更改以粗体标注。

  1. 若有使用#loop的代码如下:
    {{#loop:i|5|10|{{#var:i}}<br/>}}
  2. #loop:替换为loop/auto|
    {{subst:loop/auto|i|5|10|{{#var:i}}<br/>}}
  3. 点击保存,原内容被替换为
    {{#invoke:loop|main|i=5|14|do=<nowiki>{{#var:i}}<br/></nowiki> }}