Plantilla:Bucle for

De Wikipedia, la enciclopedia libre
Ir a la navegación Ir a la búsqueda


Icono de documentación de plantilla Documentación de la plantilla[ver] [editar] [historial] [purgar]


Plantilla:Bucle for implementa un bucle foreach.

Esta plantilla invoca a otra plantilla especificada, una vez por cada uno de los ítems de una lista de valores. Un parámetro con nombre se pasa con el valor de una lista de las actuales iteraciones con un posible prefijo o sufijo añadido. Adicionalmente al parámetro variable, se pueden especificar parámetros fijos para ser pasados en cada iteración. El primer parámetro sin nombre es enviado entre llamadas a una plantilla especificada por el usuario.


Uso

{{Bucle for|<!-- separador, se conservan los espacios en blanco -->|
    call    = plantilla a ser llamada
  | pc1n    = nombre del 1er parámetro estático para ser pasado a la plantilla llamada
  | pc1v    = valor del 1er parámetro estático para ser pasado a la plantilla llamada
  | pc2n    = del 2do parámetro estático para ser pasado a la plantilla llamada
  | pc2v    = valor del 2do parámetro estático para ser pasado a la plantilla llamada
  | pc3n    = nombre del 3er parámetro estático para ser pasado a la plantilla llamada
  | pc3v    = valor del 1er parámetro estático para ser pasado a la plantilla llamada
<!-- Se pueden insertar tantos parámetros fijos para ser pasados a la plantilla llamada como sean necesarios -->
  | pv      = nombre del parámetro utilizado para ser pasado a la plantilla invocada a la cual se
                asigna los valores de la variable con el prefijo y sufijo añadidos.
  | prefix  = prefijo estático añadido a cada uno de los valores de la variable
  | postfix = sufijo estático añadido a cada uno de los valores de la variable
  | lista de los valores de la variable con el separador "|", los espacios en blanco se eliminan
     (los valores de parámetros vacíos funcionan en la forma usual, no son ignorados como los indefinidos)
}}

Se utiliza como separador el primer parámetro sin nombre, permitiendo comenzar y/o terminar con saltos de línea y espacios. El separador sale "entre" las llamadas a la plantilla invocada en |call=. No sale después de la última llamada a la plantilla. El valor del separador va antes que la lista de valores. Si algún valor en la lista contien un signo igual, utilice {{=}}. Si no hace uso de {{=}}, la lista tiene que utilizar parámetros con nombre, al menos a partir de ese punto. Si usted hace uso de parámetros con nombre, note que el primer valor es el parámetro 2 (p. ej. |2=El1erValorDeSuLista), porque el parámetro 1 es el correspondiente al separador. Si el separador contiene un signo igual, también debería utilizarse {{=}}. Alternativamente, el separador puede ser prefijado con "1=", pero en ese caso, no puede contener saltos de línea ni espacios al principio ni al final. Además, si usted hace uso de parámetros con nombre, no debe saltarse ningún número, porque el bucle finalizará luego del primer parámetro numerado ausente. (Nótese que los parámetros pueden estar en blanco, pero no ausentes; los parámetros en blanco se leen en la forma usual.)

Ejemplos

Código Resultado
1{{Bucle for|, 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
}}
1Error de Lua: expandTemplate: template "1x" does not exist.

Nótese que la última parte del separador se utiliza como prefijo; el primer prefijo tiene que ser colocado separadamente



{{bucle for|-|a|3||c|g|call=3x}} utilizando {{3x}} produce

Error de Lua: expandTemplate: template "3x" does not exist.

{{bucle for|

|a|3||c|g|call=3x}} produce

Error de Lua: expandTemplate: template "3x" does not exist.

{|class="wikitable sortable"
|-
!Test
|-
| {{bucle for|
{{!}}-
{{!}} |a|b|c|d|e|call=3x}}
|}

produce:

Ensayo
Error de Lua: expandTemplate: template "3x" does not exist.
{{bucle for| |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}}

produce:

Error de Lua: expandTemplate: template "1x" does not exist.

comienzo->{{bucle for|{{=}} |01|02|03|04|05|06|07|08|09|10
|11{{=}}{{=}}{{=}}|12|13|14|15|16|17|18|19|call=1x}}<-final

gives:

comienzo->Error de Lua: expandTemplate: template "1x" does not exist.<-final

Código heredado

Esa plantilla está derivada de la tercera versión de la plantilla equivalente en la wikipedia en inglés. Actualmente utiliza código Lua ubicado en el Módulo:ForLoop. Fue portado a Lua desde las funciones Párser.

Las antiguas versiones se encontraban limitadas a una lista de 150 valores de variables y cuatro parámetros fijos. Actualmente no existen límites. Además en la primera versión, el parámetro "sep" no permitía los espacios en blanco como separadores. Esto fue corregido en la segunda versión, y se mantuvo en la actual.
Esta documentación está transcluida desde Plantilla:Bucle for/doc.
Los editores pueden experimentar en la zona de pruebas (crear) y en los casos de prueba (crear) de la plantilla.
Por favor, añade las categorías en la subpágina de documentación. Subpáginas de esta plantilla.