Vytvorenie zoznamu Iterators Pomocou príkazu Linux "foreach"

Pri programovaní príkaz foreach implementuje slučku, kde premenné slučky preberajú hodnoty z jedného alebo viacerých zoznamov. V najjednoduchšom prípade existuje jedna premenná slučky, varname a jeden zoznam, zoznam , ktorý je zoznamom hodnôt priradených k varname . Argument telesa je skript Tcl. Pre každý prvok zoznamu (v poradí od prvého do posledného) foreach priradí obsah prvku k varname , akoby bol príkaz lindex použitý na extrakciu prvku, potom zavolá tlmočníka Tcl, aby vykonal telo .

synopse

foreach body zoznamu varname
foreach varlist1 list1 ? varlist2 list2 ... ? telo

diskusia

Vo všeobecnom prípade môže existovať viac ako jeden zoznam hodnôt (napr. Zoznam1 a zoznam2 ) a každý zoznam hodnôt môže byť priradený ku zoznamu premenných slučky (napr. Varlist1 a varlist2 ). Počas každej iteračnej cykly sú premenné každého varlistu priradené po sebe idúce hodnoty z príslušného zoznamu . Hodnoty v každom zozname sa používajú v poradí od prvého do posledného a každá hodnota sa používa presne raz. Celkový počet opakovaní cyklov je dostatočne veľký na to, aby použil všetky hodnoty zo všetkých zoznamov hodnôt. Ak zoznam hodnôt neobsahuje dostatok prvkov pre každú z jeho premenných slučky v každej iterácii, prázdne hodnoty sa použijú pre chýbajúce prvky.

Príkazy prerušenia a pokračovania môžu byť vyvolané vnútri tela s rovnakým účinkom ako v príkaze. Funkcia vráti prázdny reťazec.

Príklady

Nasledujúca slučka používa i a j ako premenné cyklu na opakovanie nad dvojicami prvkov jedného zoznamu.

nastaviť x {} foreach {ij} {abcdef} {lappend x $ j $ i} # Hodnota x je "badcfe" # Existujú tri iterácie slučky.

Nasledujúca slučka používa i a j na paralelné opakovanie dvoch zoznamov.

nastaviť x {} foreach i {abc} j {defg} {lappend x $ i $ j} # Hodnota x je "adbecf {} g" # Existujú 4 opakovania cyklu.

Tieto dve formy sa kombinujú v nasledujúcom príklade.

nastaviť x {} foreach i {abc} {jk} {defg} {lappend x $ i $ j $ k} # Hodnota x je "adebfgc {} {}" # Existujú tri opakovania slučky.

Poznámky

Niekoľko súvisiacich príkazov pracuje s foreach vrátane:

Pretože distribučné úrovne Linuxu a úrovne uvoľňovania jadra sa líšia, použite príkaz man ( % man ), aby ste zistili, ako je príkaz konkrétne použitý na vašom konkrétnom počítači .