Build Iterators List Z Linux "foreach" Command

Ko programirate , ukaz foreach izvede zanko, kjer spremenljivke zanke prevzamejo vrednosti z enega ali več seznamov. V najpreprostejšem primeru je ena spremenljiva zanko, varname in en seznam, seznam , to je seznam vrednosti, ki jih lahko dodelite varname . Argument telesa je skript Tcl. Za vsak element seznama (po vrstnem redu od prvega do zadnjega), foreach dodeljuje vsebino elementa varni, kot če bi bil ukaz lindex uporabljen za izločitev elementa, nato pa za izvrševanje telesa pokliče tolmač Tcl.

Povzetek

napišite body varname
foreach varlist1 list1 ? varlist2 list2 ... ? telo

Diskusija

V splošnem primeru je lahko več kot en seznam vrednosti (npr. List1 in list2 ), vsak seznam vrednosti pa je lahko povezan s seznamom spremenljivk zanke (npr. Varlist1 in varlist2 ). Med vsako ponovitvijo zanke so spremenljivke vsakega spremenljivke dodeljene zaporedne vrednosti iz ustreznega seznama . Vrednosti na vsakem seznamu se uporabljajo od prvega do zadnjega, in vsaka vrednost se uporablja natančno enkrat. Skupno število ponovitev zanke je dovolj veliko, da lahko uporabite vse vrednosti iz vseh seznamov vrednosti. Če seznam vrednosti ne vsebuje dovolj elementov za vsako spremenljivko zanke v vsaki ponovitvi, se za manjkajoče elemente uporabljajo prazne vrednosti.

Izjave o prekinitvi in nadaljevanju se lahko skličejo znotraj telesa , z enakim učinkom kot pri ukazu za. F oreach vrne prazen niz.

Primeri

Naslednja zanka uporablja i in j kot spremenljivke zanke, da pretehta pare elementov enega seznama.

nastavite x {} foreach {ij} {abcdef} {lappend x $ j $ i} # Vrednost x je "badcfe" # Obstaja 3 iteracije zanke.

Naslednja zanka uporablja i in j, da vzporedno preseže dva seznama.

nastavite x {} foreach i {abc} j {defg} {lappend x $ i $ j} # Vrednost x je "adbecf {} g" # Obstaja 4 iteracije zanke.

Obe obliki sta združeni v naslednjem primeru.

set x {} foreach i {abc} {jk} {defg} {lappend x $ i $ j $ k} # Vrednost x je "adebfgc {} {}" # Obstaja 3 iteracije zanke.

Opombe

Več povezanih ukazov deluje z napravo, vključno z:

Ker se distribucija in distribucija v Linuxu razlikujejo, uporabite ukaz man ( % man ), da vidite, kako se ukaz uporablja posebej v vašem računalniku .