Skip to main content

Build Iterators List Z Linux "foreach" Command

Anonim

Ko programirate,za vsakogar ukaz izvede zanko, kjer spremenljivke zanke prevzamejo vrednosti z enega ali več seznamov. V najpreprostejšem primeru obstaja ena zanka spremenljivka, varname , in en seznam, seznam , to je seznam vrednosti, ki jih želite dodeliti varname . The telo argument je Tcl skript. Za vsak element seznam (od 1. do zadnjega),za vsakogar določi vsebino elementa v varname kot čelindexukaz je bil uporabljen za ekstrahiranje elementa, nato pa klic prevajalca Tcl za izvedbo telo .

Povzetek

za vsakogar telo liste varname

za vsakogar varlist1 list1 ? varlist2 list2 … ? telo

Diskusija

V splošnem primeru je lahko več kot en seznam vrednosti (npr. seznam1 in seznam2 ) in vsak seznam vrednosti se lahko poveže s seznamom spremenljivk zanke (npr. varlist1 in varlist2 ). Med vsako ponovitvijo zanke, spremenljivke vsakega varlist so dodeljene zaporedne vrednosti iz ustreznih seznam . Vrednosti v vsakem seznam se uporabljajo od prvega do zadnjega, in vsaka vrednost se uporablja točno enkrat. Skupno število ponovitev zanke je dovolj veliko, da lahko uporabite vse vrednosti iz vseh seznamov vrednosti. Če seznam vrednosti ne vsebuje dovolj elementov za vsako spremenljivko zanke v vsaki ponovitvi, se za manjkajoče elemente uporabljajo prazne vrednosti.

Theodmor innadaljuj Izjave se lahko uveljavljajo znotraj telo , z enakim učinkom kot v za ukaz. FOreach vrne prazen niz.

Primeri

Uporablja se naslednja zanka jaz in j kot spremenljivke zanke, da ponovijo pari elementov enega samega seznama.

nastavite x {} foreach {i j} {a b c d e f} {lappend x $ j $ i} # Vrednost x je "b a d c f e" # Obstaja 3 iteracije zanke.

Naslednja zanka uporablja jaz in j vzporedno preseči dva seznama.

nastavite x {} foreach i {a b c} j {d e f g} {lappend x $ i $ j} # Vrednost x je "d b e c f {} g" # Obstaja 4 iteracije zanke.

Obe obliki sta združeni v naslednjem primeru.

nastavite x {} foreach i {a b c} {j k} {d e f g} {lappend x $ i $ j $ k} # Vrednost x je "d e b f g c {} {}" # Obstaja 3 iteracije zanke.

Opombe

Z njim sodeluje več povezanih ukazovza vsakogar vključno:

  • za (n)
  • medtem ko (n)
  • odmor (n)
  • nadaljuj (n)

Ker se distribucija Linuxa in ravni sproščanja jedra razlikujejo, uporabite človek ukaz ( % človek ), da bi videli, kako se ukaz uporablja posebej v vašem računalniku.