Al programar, el comando foreach implementa un bucle donde las variables del bucle asumen los valores de una o más listas. En el caso más simple hay una variable de bucle, varname, y una lista, list, que es una lista de valores a asignar a varname. El argumento body es un script Tcl. Para cada elemento de list (en orden del primero al último), foreach asigna el contenido del elemento a varname como si el comando lindex hubiera sido usado para extraer el elemento, luego llama al intérprete Tcl para ejecutar body.
Índice de contenidos
Sinopsis
foreach varname list body
foreach varlist1 list1 ? varlist2 lista2 …? body
Discusión
En un caso general, puede haber más de una lista de valores (por ejemplo, list1 y list2), y cada lista de valores puede asociarse con una lista de variables de bucle (por ejemplo, varlist1 y varlist2). Durante cada iteración del bucle, a las variables de cada varlist se les asignan valores consecutivos de la correspondiente lista. Los valores de cada lista se utilizan en orden de principio a fin, y cada valor se utiliza exactamente una vez. El número total de iteraciones de bucles es lo suficientemente grande como para utilizar todos los valores de todas las listas de valores. Si una lista de valores no contiene suficientes elementos para cada una de sus variables de bucle en cada iteración, se utilizan valores vacíos para los elementos que faltan.
Las sentencias break y continue pueden invocarse dentro body, con el mismo efecto que en el comando for . La f oreach devuelve una cadena vacía.
Ejemplos
El siguiente bucle utiliza i y j como variables de bucle para iterar sobre pares de elementos de una misma lista.
pre>set x {}foreach {i j} {a b c d e f} {lappend x $j $j $j $i}# El valor de x es «b a d c f e «# Hay 3 iteraciones del bucle.
El siguiente bucle utiliza i y j para iterar sobre dos listas en paralelo.
pre>set x {}para cada uno i {a b c} j {d e f g}} xlappend x $i $j}# El valor de x es «a d b e c f {} g «# Hay 4 iteraciones del loop.
Las dos formas se combinan en el siguiente ejemplo.
set x {}foreach i {a b c} {j k} {d e f g} {lappend x $i $j $k}# El valor de x es "a d e b f f g c {} Hay 3 iteraciones del bucle.Notas
Varios comandos relacionados trabajan con foreach incluyendo:
- para(n)
- while(n)
- pausa(n)
- continuar(n)
Debido a que la distribución de Linux y los niveles de liberación del núcleo varían, utilice el comando man ( % man) para ver cómo se usa específicamente un comando en su equipo particular.