Durante la programmazione, ilper ciascuno comando implementa un ciclo in cui le variabili del ciclo assumono i valori da uno o più elenchi. Nel caso più semplice c'è una variabile di loop, nomevar e una lista, elenco , questo è un elenco di valori da assegnare a nomevar . Il corpo argomento è uno script Tcl. Per ogni elemento di elenco (in ordine dal primo all'ultimo),per ciascuno assegna il contenuto dell'elemento a nomevar come se ilLindexil comando era stato usato per estrarre l'elemento, quindi chiama l'interprete Tcl per l'esecuzione corpo .
Sinossi
per ciascuno corpo della lista di varname
per ciascuno varlist1 list1 ? varlist2 list2 … ? corpo
Discussione
In un caso generale, ci può essere più di una lista valori (ad es. lista1 e lista2 ) e ogni elenco di valori può essere associato a un elenco di variabili di ciclo (ad es. varlist1 e varlist2 ). Durante ogni iterazione del ciclo, le variabili di ciascuno lista-variabili vengono assegnati valori consecutivi dal corrispondente elenco . Valori in ciascuno elenco sono usati in ordine dal primo all'ultimo, e ogni valore è usato esattamente una volta. Il numero totale di iterazioni del ciclo è sufficientemente ampio da utilizzare tutti i valori di tutti gli elenchi di valori. Se una lista valori non contiene abbastanza elementi per ciascuna delle sue variabili di ciclo in ogni iterazione, vengono utilizzati valori vuoti per gli elementi mancanti.
Ilrompere eContinua le dichiarazioni possono essere invocate all'interno corpo , con lo stesso effetto del per comando. Il fforeach restituisce una stringa vuota.
Esempi
Il seguente ciclo utilizza io e j come variabili di ciclo per scorrere su coppie di elementi di una singola lista.
set x {} foreach {i j} {a b c d e f} {lappend x $ j $ i} # Il valore di x è "b a d c f e" # Ci sono 3 iterazioni del ciclo.
Il ciclo successivo utilizza io e j per scorrere su due liste in parallelo.
set x {} foreach i {a b c} j {d e f g} {lappend x $ i $ j} # Il valore di x è "a d b e c f {} g" # Ci sono 4 iterazioni del ciclo.
Le due forme sono combinate nell'esempio seguente.
set x {} foreach i {a b c} {j k} {d e f g} {lappend x $ i $ j $ k} # Il valore di x è "a d e b f g c {} {}" # Ci sono 3 iterazioni del ciclo.
Gli appunti
Diversi comandi correlati funzionano conper ciascuno Compreso:
- per (n)
- while (n)
- pausa (n)
- continua (n)
Poiché la distribuzione di Linux e i livelli di rilascio del kernel variano, utilizzare uomo comando ( % uomo ) per vedere come un comando viene usato in modo specifico sul tuo computer specifico.