Перейти до вмісту

Шаблон:For loop

Матеріал з Вікіцитат
{{i}} Документація шаблону[перегляд] [редагувати] [історія] [очистити кеш]

Опис

[ред.]

Цей шаблон реалізує цикл for або foreach.

У ньому використовується кілька разів вказаний шаблон: один раз для кожного значення в ітерованій послідовності або в конкретному списку. Кожне значення в послідовності або списку передається тому самому параметру шаблона («змінному параметру»). За бажанням до переданих значень можна приєднати пре- та постфікси.

На додаток до зазначеного змінного параметру, іншим параметрам вказаного шаблону («незмінним параметрам») можна надати значення, яке є однаковим у кожній ітерації.

Використання

[ред.]
Розділ Параметр Пояснення Значення за замовчуванням
Обов'язкові 1 (без назви) роздільник (може бути порожнім; можна використовувати пробіл)
call шаблон
pv порядковий номер або назва змінного параметра 1
Необов'язково 1:
ітерація послідовності
start початкове числове значення для змінного параметра 1
stop максимальне числове значення для змінного параметра
by повторюване числове значення кроку для змінного параметра 1
Необов'язково 2:
конкретні значення
(параметри без назв) конкретні значення, які подані як окремі параметри (пробіли видаляються)
skipBlanks встановіть значення "true", щоб пропускати порожні значення параметрів false
Інші необов'язкові
параметри
pc[N]n порядковий номер або назва N-го незмінного параметра
pc[N]v значення N-го незмінного параметра
prefix незмінний префікс, що додається до кожного значення, переданого до змінного параметра
postfix незмінний постфікс, що додається до кожного значення, переданого до змінного параметра
substall встановіть значення "false", щоб не робити підстановку для викликаного шаблону|call коли для {{for loop}} використовується підстановка true

Можна використовувати параметри з розділу Необов'язково 1 (ітерація значень) або розділу Необов'язково 2 (список значень), але не обидва.

Перший безіменний параметр перед будь-якими явними значеннями є роздільником. Роздільник — це рядок, який виводиться між викликами шаблону, вказаного в параметрі |call=. Не виводиться після останнього виклику.

Важливо знати

[ред.]
  • Роздільник може мати префікс "1=", але в цьому випадку він не може містити символи нового рядка та пробіли на початку та в кінці.
  • Якщо будь-яке значення параметра містить знак рівності, використовуйте {{=}}.
  • Якщо ви використовуєте пронумеровані параметри, зауважте, що перше значення – це параметр 2 (наприклад, |2=Ваше1-шеЗначення), оскільки параметр 1 є роздільником.
  • Якщо ви використовуєте пронумеровані параметри, у такому випадку не можна пропускати жодні числа. Цикл завершиться після першого відсутнього нумерованого параметра. (Параметри можуть бути порожніми, але не відсутніми.)

Підстановка

[ред.]

Поточний шаблон підтримує підстановку. Якщо |substallno не вказано, то підстановка шаблону буде використана для усього, включаючи виклик шаблону, переданого в параметр |call. Якщо вказано, то шаблон використає підстановку лише для послідовності викликів вказаного шаблону.

Для повної підстановки можна скористатися сторінкою Спеціальна:ExpandTemplates.

Приклади

[ред.]
Код Результат
1{{for loop|, 1|00|01|02|03|04|05|06|07|08|09
|10|11|12|13|14|15|16|17|18|19
|20|21|22|23|24|25|26|27|28|29
|30|31|32|33|34|35|36|37|38|39
|40|41|42|43|44|45|46|47|48|49
|50|51|52|53|54|55|56|57|58|59
|60|61|62|63|64|65|66|67|68|69
|70|71|72|73|74|75|76|77|78|79
|80|81|82|83|84|85|86|87|88|89
|90|91|92|93|94|95|96|97|98|99
  |call=1x
}}
100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199

Зверніть увагу, що частина роздільника використовується як префікс


{{for loop|-|a|3||c|g|call=3x}} використовуючи {{3x}} дає:

aaa-333-ccc-ggg

{{for loop|

|a|3||c|g|call=3x}} дає:

aaa

333

ccc

ggg

{|class="wikitable sortable"
|-
!Тест
|-
| {{for loop|
{{!}}-
{{!}} |a|b|c|d|e|call=3x}}
|}

дає:

Тест
aaa
bbb
ccc
ddd
eee
{{for loop| |01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19
|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39
|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59
|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79
|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99
|100|101|102|103|104|105|106|107|108|109|110|111|112|113|114|115|116|117|118|119
|120|121|122|123|124|125|126|127|128|129|130|131|132|133|134|135|136|137|138|139
|140|141|142|143|144|145|146|147|148|149|150|151|152|153|154|call=1x}}

дає:

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154

Попередні версії

[ред.]

Наразі цей шаблон знаходиться у своєму третьому втіленні. Тепер він використовує код Lua з модуля For loop. Його було перенесено на Lua з ParserFunctions. Перша версія використовувала іменний параметр "sep" для визначення значення роздільника. Шаблон спочатку базувався на Template:For. Назву шаблону було змінено, оскільки у Вікіпедії вже існував шаблон {{for}}.

Старі версії обмежувалися 150 змінними значеннями та чотирма фіксованими параметрами. У поточній версії таких обмежень немає. Крім того, у першій версії параметр "sep" не дозволяв використовувати пробіл у значенні роздільника. Цей недолік було виправлено у другій версії та збережено в поточній версії.

Див. також

[ред.]