Veidojiet saraksta iteratorus ar Linux "foreach" komandu

Programmējot , foreach komanda īsteno cilpu, kur cilpa mainīgie pieņem vērtības no viena vai vairākiem sarakstiem. Visvienkāršākajā gadījumā ir viens cilpa mainīgais, varname un viens saraksts, saraksts , tas ir vērtību saraksts, ko piešķirt varname . Ķermeņa arguments ir Tcl skripts. Par katru saraksta elementu (no pirmās uz pēdējo), foreach piešķir elementa saturu nosaukumam varname tā , it kā lindeks komanda būtu izmantota, lai iegūtu elementu, un pēc tam aicina Tcl tulks izpildīt ķermeni .

Kopsavilkums

foreach varname saraksts ķermenis
foreach varlist1 saraksts1 ? varlist2 saraksts2 ... ? ķermenis

Diskusija

Vispārīgā gadījumā var būt vairāk nekā viens vērtību saraksts (piemēram, list1 un list2 ), un katru vērtību sarakstu var saistīt ar cilpu mainīgo sarakstu (piemēram, varlist1 un varlist2 ). Katras cilpas atkārtojuma laikā katra saraksta mainīgajiem lielumiem piešķir atbilstošas ​​vērtības no atbilstošā saraksta . Vērtības katrā sarakstā tiek izmantotas, sākot no pirmās uz pēdējo, un katru vērtību izmanto vienreiz. Kopējais cilpas iterāciju skaits ir pietiekami liels, lai izlietotu visas vērtības no visiem vērtību sarakstiem. Ja vērtību sarakstā nav katram iterācijas katram tā cilpas mainīgajiem pietiekami daudz elementu, trūkstošajiem elementiem tiek izmantotas tukšas vērtības.

Paziņojumus par pārtraukumu un turpināšanu var atsaukties iekšpusē, ar tādu pašu efektu kā komandai. F oreach atgriež tukšu stīgu.

Piemēri

Sekojošā cilpa izmanto i un j kā cilpa mainīgos, lai virzītu pār vienu saraksta elementu pāriem.

set x {} foreach {ij} {abcdef} {lappend x $ j $ i} # x vērtība ir "badcfe" # Ir 3 atkārtojumi no cilpas.

Nākamā cilpa izmanto i un j, lai atkārtotu paralēli diviem sarakstiem.

set x {} foreach i {abc} j {defg} {lappend x $ i $ j} # x vērtība ir "adbecf {} g" # Ir 4 iterācijas cilpa.

Abas formas ir apvienotas šādā piemērā.

set x {} foreach i {abc} {jk} {defg} {lappend x $ i $ j $ k} # x vērtība ir "adebfgc {} {}" # Ir 3 iterācijas cilpa.

Piezīmes

Vairākas saistītas komandas strādā ar foreach, tostarp:

Tā kā Linux izplatīšanas un kodola atbrīvošanas līmeņi atšķiras, izmantojiet vīriešu komandu ( % man ), lai redzētu, kā komanda tiek īpaši izmantota jūsu konkrētajā datorā .