Vid programmering,för varje kommandot implementerar en slinga där slingvariablerna antar värdena från en eller flera listor. I det enklaste fallet finns en slingvariabel, varName , och en lista, lista , det är en lista över värden att tilldela till varName . De kropp argumentet är ett Tcl-skript. För varje element i lista (i ordning från första till sista)för varje tilldelar elementets innehåll till varName som omlindexkommandot hade använts för att extrahera elementet, då kallas Tcl-tolken att utföra kropp .
Synopsis
för varje varnamnslista kropp
för varje varlist1 lista1 ? varlist2 list2 … ? kropp
Diskussion
I ett allmänt fall kan det finnas mer än en värde lista (t.ex. lista1 och lista2 ) och varje värdelista kan associeras med en lista över loop-variabler (t.ex. varlist1 och varlist2 ). Under varje iteration av slingan, variablerna för varje varlist tilldelas konsekutiva värden från motsvarande lista . Värden i varje lista används i ordning från första till sista, och varje värde används exakt en gång. Det totala antalet loop-iterationer är tillräckligt stort för att använda alla värden från alla värdelistor. Om en värdeslista inte innehåller tillräckligt med element för var och en av dess loopvariabler i varje iteration används tomma värden för de saknade elementen.
Deha sönder ochFortsätta uttalanden kan åberopas inuti kropp , med samma effekt som i för kommando. Foreach returnerar en tom sträng.
exempel
Följande slingan använder jag och j som loopvariabler för att iterera över par av element i en enda lista.
set x {} foreach {i j} {a b c d e f} {lappend x $ j $ i} # Värdet av x är "b a d c f e" # Det finns tre iterationer i loopen.
Nästa slinga använder jag och j att iterera över två listor parallellt.
set x {} foreach i {a b c} j {d e f g} {lappend x $ i $ j} # Värdet av x är "a d b e c f {} g" # Det finns 4 iterationer i slingan.
De två formerna kombineras i följande exempel.
sätta x {} för {i} {j k} {d e f g} {lappend x $ i $ j $ k} # Värdet av x är "a d e b f g c {} {}" # Det finns tre iterationer i slingan.
anteckningar
Flera relaterade kommandon arbetar medför varje Inklusive:
- för (n)
- medan (n)
- paus (n)
- fortsätta (n)
Eftersom Linux-distributions- och kärnfrisättningsnivåer varierar, använder du man kommando ( % man ) för att se hur ett kommando används specifikt på din dator.