「Template:Lj」與「Template:Loop/doc」:頁面間的差異
(頁面間的差異)
跳至導覽
跳至搜尋
imported>Yumeto (以“{{lang|ja|{{{1}}}}}”替换内容) |
imported>850710247liu (创建页面,内容为“== 简介 == 该模板可以循环执行语句。相较于解析器函数,因为使用Lua模块进行循环,所以'''没有100次上限的限制'''。 == 用…”) |
||
行 1: | 行 1: | ||
{{ | == 简介 == | ||
该模板可以循环执行语句。相较于解析器函数,因为使用Lua模块进行循环,所以'''没有100次上限的限制'''。 | |||
== 用法 == | |||
<pre> | |||
{{loop | 自增/减变量名 = 初值 | 终值 | 自增/减量 |do= <nowiki><nowiki></nowiki> | |||
循环执行的代码... | |||
<nowiki></nowiki></nowiki>}} | |||
</pre> | |||
其中,使用自增/减变量的写法为:<code><nowiki>{{#var:变量名}}</nowiki></code>,如:<code><nowiki>{{#var:time}}</nowiki></code>。 | |||
默认的自增/减量在初值小于终值为1,在初值大于终值时为-1。 | |||
注意: | |||
* 第一层循环的代码需要用<code><nowiki><nowiki></nowiki></code>标签包裹 | |||
* 多层循环中内层循环的代码不需要<code><nowiki><nowiki></nowiki></code>标签包裹 | |||
由于使用{{tl|loop}}调用时,上下文会被更改为{{tl|loop}},因此被<code><nowiki><nowiki></nowiki></code>标签包裹的代码将'''无法正常接收'''模板的接收参数(也即被三对大括号包裹的参数,如<code><nowiki>{{{1}}}</nowiki></code>) | |||
如果需要使用传入的模板接收参数,可以改为直接调用[[模块:Loop]],具体方法为:将<code><nowiki>{{loop|...}}</nowiki></code>替换为<code><nowiki>{{#invoke:loop|main|...}}</nowiki></code>。 | |||
== 示例 == | |||
=== 示例1 === | |||
<pre> | |||
{{#vardefine:count|0}}<!-- | |||
-->{{loop|time=1|101|do= | |||
<nowiki><nowiki></nowiki>{{#vardefine:count| {{#expr: {{#var:count}} + {{#var:time}} }} }}<nowiki></nowiki></nowiki> }} | |||
结果:{{#var:count}} | |||
</pre> | |||
{{#vardefine:count|0}}<!-- | |||
-->{{loop|time=1|101|do= | |||
<nowiki>{{#vardefine:count| {{#expr: {{#var:count}} + {{#var:time}} }} }}</nowiki> }} | |||
结果:{{#var:count}} | |||
=== 示例2 === | |||
<pre> | |||
{{#vardefine:count|0}}<!-- | |||
-->{{loop|time1=1|5|do=<nowiki><nowiki></nowiki> | |||
{{loop|time2=1|100|do= | |||
{{#vardefine:count| {{#expr: {{#var:count}} + {{#var:time1}} * {{#var:time2}} }} }} | |||
}} | |||
<nowiki></nowiki></nowiki>}} | |||
结果:{{#var:count}} | |||
</pre> | |||
{{#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}} | |||
=== 示例3 === | |||
当需要使用模板的接收参数时,请直接调用[[模块:Loop]]。 | |||
<pre> | |||
{{#invoke:loop|main|time=1|5 | |||
|do=<nowiki><nowiki></nowiki> | |||
{{#expr:{{#var:time}} + {{{1|0}}} }}{{{split|、}}} | |||
<nowiki></nowiki></nowiki> | |||
}} | |||
</pre> | |||
{{#invoke:loop|main|time=1|5 | |||
|do=<nowiki> | |||
{{#expr:{{#var:time}} + {{{1|0}}} }}{{{split|、}}} | |||
</nowiki> | |||
}} | |||
若以上代码位于某模板中,则: | |||
* <code><nowiki>{{模板名称}}</nowiki></code>的结果为:1、2、3、4、5、 | |||
* <code><nowiki>{{模板名称|2}}</nowiki></code>的结果为:3、4、5、6、7、 | |||
* <code><nowiki>{{模板名称|2|split=@}}</nowiki></code>的结果为:3@4@5@6@7@ | |||
== 与解析器函数的替换 == | |||
本模板的参数与<code>#loop</code>略有不同,你可以通过一下方法快速替换: | |||
#将<code>#loop:</code>替换为<code>subst:loop/auto|</code>。 | |||
#点击“保存更改”。 | |||
=== 例子 === | |||
替换过程中进行的更改以'''粗体'''标注。 | |||
#若有使用<code>#loop</code>的代码如下: | |||
#:<div class="mw-code"><nowiki>{{</nowiki>'''#loop:'''<nowiki>i|5|10|{{#var:i}}<br />}}</nowiki></div> | |||
#将<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> | |||
#点击保存,原内容被替换为 | |||
#:<pre>{{#invoke:loop|main|i=5|14|do=<nowiki><nowiki></nowiki>{{#var:i}}<br /><nowiki></no</nowiki>wiki> }}</pre> | |||
<includeonly>[[分类:功能模板]]</includeonly><noinclude>[[分类:模板说明文件]]</noinclude> |
於 2020年1月29日 (三) 17:24 的修訂
簡介
該模板可以循環執行語句。相較於解析器函數,因為使用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
略有不同,你可以通過一下方法快速替換:
- 將
#loop:
替換為subst:loop/auto|
。 - 點擊「保存更改」。
例子
替換過程中進行的更改以粗體標註。
- 若有使用
#loop
的代碼如下:- {{#loop:i|5|10|{{#var:i}}<br />}}
- 將
#loop:
替換為loop/auto|
:- {{subst:loop/auto|i|5|10|{{#var:i}}<br />}}
- 點擊保存,原內容被替換為
{{#invoke:loop|main|i=5|14|do=<nowiki>{{#var:i}}<br /></nowiki> }}