Sukurkite sąrašo "Iterators" su "foreach" komandų Linux

Programuojant , foreach komanda įgyvendina kilpą, kur ciklo kintamieji prisiima reikšmes iš vieno ar daugiau sąrašų. Paprasčiausiu atveju yra vienas kilpos kintamasis, varname ir vienas sąrašas, sąrašas , tai verčių sąrašas priskirti varname . Kūno argumentas yra Tcl scenarijus. Kiekvienam sąrašo elementui (nuo pirmojo iki paskutinio), foreach priskiria elemento turinį vardui varname , tarsi lindex komanda būtų naudojama išgauti elementą, tada paskambina Tcl interpretatorius vykdyti kūną .

Anotacija

foreach varname list kūnas
foreach varlist1 list1 ? varlist2 list2 ... ? kūnas

Diskusija

Bendrais atvejais gali būti daugiau nei vienas vertės sąrašas (pvz., List1 ir list2 ), o kiekvienas vertės sąrašas gali būti susietas su ciklo kintamųjų sąrašu (pvz., Varlist1 ir varlist2 ). Kiekvienos ciklo iteracijos metu kiekvieno sąrašo kintamieji priskiriami iš atitinkamo sąrašo eilės reikšmių. Vertės kiekviename sąraše naudojamos nuo pirmosios iki paskutinės, o kiekviena vertė naudojama tiksliai vieną kartą. Bendras ciklo iteracijų skaičius yra pakankamai didelis, kad panaudotų visas vertes iš visų vertės sąrašų. Jei vertybių sąraše nėra kiekvieno iteracinio kintamojo elementų pakankamai elementų, trūkstamiems elementams naudojamos tuščios reikšmės.

Pertraukos ir tęsinys teiginiai gali būti naudojami vidiniame kūne su tokiu pačiu poveikiu kaip ir komandai. F oreach grąžina tuščią eilutę.

Pavyzdžiai

Sekantis ciklas naudoja i ir j kaip linijos kintamuosius, kad būtų galima kartoti per elementų poras viename sąraše.

set x {} foreach {ij} {abcdef} {lappend x $ j $ i} # x reikšmė yra "badcfe" # Yra 3 pakartojimo iteracijos.

Kitas kilpas naudoja i ir j, kad lygiagrečiai pakartotų du sąrašus.

nustatyti x () foreach i (abc) j (defg) (lappend x $ i $ j) # x reikšmė yra "adbecf () g" # Yra 4 pakartojimo iteracijos.

Dvi formos yra sujungtos kitame pavyzdyje.

Nustatyti x () foreach i (abc) (jk) (defg) (lappend x $ i $ j $ k) # x reikšmė yra "adebfgc () {}" # Yra 3 pakartojimo iteracijos.

Pastabos

Kelios susijusios komandos dirba su foreach, įskaitant:

Kadangi Linux platinimo ir branduolio paleidimo lygiai skiriasi, naudokite komandą man ( % man ), kad pamatytumėte, kaip komanda konkrečiai naudojama jūsų konkrečiame kompiuteryje .