Build List Iterators Bil-Linux "Foreach" Kmand

Meta tipprogramma , il-kmand foreach jimplimenta linja fejn il-varjabbli tal-loop jassumu l-valuri minn lista waħda jew aktar. Fil-każ l-aktar sempliċi hemm loop variable wieħed, varname , u lista waħda, lista , li hija lista ta 'valuri li tassenja lill- varname . L-argument tal- korp huwa skrittura Tcl. Għal kull element tal- lista (mill-ewwel sa l-aħħar), foreach jassenja l-kontenut ta 'l-element għal varname daqs li kieku l-kmand lindex intuża biex jiġbed l-element, imbagħad isejjaħ lill-interpretu Tcl biex jesegwixxi l- ġisem .

Sinteżi

foreach varname list body
foreach varlist1 list1 ? lista 2 tal-varlist2 ... ? korp

Diskussjoni

F'każ ġenerali, jista 'jkun hemm aktar minn lista ta' valur waħda (eż., Lista 1 u lista 2 ), u kull lista ta 'valur tista' tkun assoċjata ma 'lista ta' varjabbli tal-linja (eż., Varlist1 u varlist2 ). Matul kull iterazzjoni tal-linja, il-varjabbli ta 'kull varlist huma assenjati valuri konsekuttivi mil- lista korrispondenti. Il-valuri f'kull lista jintużaw mill-ewwel sa l-aħħar, u kull valur jintuża eżattament darba. In-numru totali ta 'iterazzjonijiet tal-loop huwa kbir biżżejjed biex juża l-valuri kollha mil-listi kollha ta' valur. Jekk lista ta 'valur ma jkollhiex elementi biżżejjed għal kull wieħed mill-varjabbli tal-linja tagħha f'kull iterazzjoni, valuri vojta jintużaw għall-elementi nieqsa.

Id-dikjarazzjonijiet tal- qtugħ u t- tkomplija jistgħu jiġu invokati ġewwa l- ġisem , bl-istess effett bħal dak fil-kmand. Il- fede jirritorna sekwenza vojta.

Eżempji

Il-linja li ġejja tuża i u j bħala varjabbli tal-linja biex iterat fuq pari ta 'elementi ta' lista waħda.

sett x {} foreach {ij} {abcdef} {lappend x $ j $ i} # Il-valur ta 'x huwa "badcfe" # Hemm 3 iterazzjonijiet tal-linja.

Il-ħolqa li jmiss tuża i u j biex iterat fuq żewġ listi b'mod parallel.

sett x {} foreach i {abc} j {defg} {lappend x $ i $ j} # Il-valur ta 'x huwa "adbecf {} g" # Hemm 4 iterazzjonijiet tal-linja.

Iż-żewġ formoli huma kkombinati fl-eżempju li ġej.

sett x {} foreach i {abc} {jk} {defg} {lappend x $ i $ j $ k} # Il-valur ta 'x huwa "adebfgc {} {}". # Hemm 3 iterazzjonijiet tal-linja.

Noti

Diversi kmandi relatati jaħdmu ma ' foreach inklużi:

Minħabba li d-distribuzzjoni Linux u l-livelli ta 'rilaxx tal-għadma jvarjaw, uża l-kmand tal- bniedem ( % bniedem ) biex tara kif kmand jintuża speċifikament fuq il- kompjuter partikolari tiegħek.