Byggja lista Iterators Með Linux "foreach" stjórn

Þegar forritið er forritað útfærir foreach skipan lykkju þar sem lykkjubreyturnar taka gildi frá einum eða fleiri listum. Einfaldasta málið er ein lykkjubreyting , varnamerki og ein listi, listi , það er listi yfir gildi til að tengja við heiti . Líkamlegt rök er Tcl handrit. Fyrir hverja listahluta (í röð frá fyrra til síðasta) gefur foreach innihald frumefnisins til varname eins og ef lindex skipunin hefði verið notuð til að þykkja frumefnið, þá kallar Tcl túlkann til að framkvæma líkama .

Yfirlit

foreach varname list líkama
foreach varlist1 list1 ? varlist2 list2 ... ? líkami

Umræður

Í almennum tilvikum getur verið meira en ein vallisti (td listi1 og listi2 ) og hver gildi listi má tengja við lista yfir lykkjubreytingar (td varlist1 og varlist2 ). Á hverri endurtekningu á lykkjunni eru breytur hvers varlistar úthlutað samfellt gildi frá samsvarandi lista . Gildi í hverri listanum eru notaðir í röð frá fyrra til síðasta og hvert gildi er notað nákvæmlega einu sinni. Heildarfjöldi lykkjaútsetninga er nógu stór til að nota allt gildi úr öllum gildum listum. Ef gildi listi inniheldur ekki næga þætti fyrir hverja lykkjubreytinguna í hverri endurtekningu eru tóm gildi notuð fyrir vantar atriði.

Brotið og áframhaldandi yfirlýsingar má beita innan líkamans , með sömu áhrifum og í stjórn. F oreach skilar tómt streng.

Dæmi

Eftirfarandi lykkja notar i og j sem lykkjubreytingar til að endurtekna yfir pör af þætti í einni lista.

settu x {} foreach {ij} {abcdef} {lappend x $ j $ i} # Gildi x er "badcfe" # Það eru 3 endurtekningar á lykkjunni.

Næsta lykkja notar i og j til að endurtekna yfir tvær listar samhliða.

settu x {} foreach i {abc} j {defg} {lappend x $ i $ j} # Gildi x er "adbecf {} g" # Það eru 4 endurtekningar á lykkjunni.

Þau tvö eyðublöð eru sameinuð í eftirfarandi dæmi.

settu x {} foreach i {abc} {jk} {defg} {lappend x $ i $ j $ k} # Gildi x er "adebfgc {} {}" # Það eru 3 endurtekningar á lykkjunni.

Skýringar

Nokkrar tengdar skipanir vinna með foreach þar á meðal:

Vegna þess að Linux dreifingar og kjarnaútgáfur eru breytilegar skaltu nota stjórn á manni ( % maður ) til að sjá hvernig stjórn er sérstaklega notaður á tölvunni þinni .