Skip to content

Vytvářejte iterátory seznamu pomocí příkazu Linux ‚foreach‘

14 de Září de 2021
gentoo penguin cuverville island antarctica 453588343 5b49b2ab46e0fb005b7288b6

The pro každého příkaz implementuje smyčku, kde proměnné smyčky převezmou hodnoty z jednoho nebo více seznamů.

Synopse

Příkaz má jednu ze dvou následujících forem: foreach varname list body
foreach varlist1 list1? varlist2 list2 …? tělo

V nejjednodušším případě existuje jedna proměnná smyčky, varnamea jeden seznam, seznam, který identifikuje hodnoty, ke kterým je třeba přiřadit varname. The tělo argumentem je skript Tcl. Pro každý prvek souboru seznam (v pořadí od prvního do posledního), pro každého přiřadí obsah prvku k varname jako kdyby lindex k extrahování prvku byl použit příkaz, poté volá ke spuštění tlumočníka Tcl tělo.

Poznámky k použití

V obecném případě může existovat více než jeden seznam hodnot (např. seznam 1 a seznam 2) a každý seznam hodnot může být spojen se seznamem proměnných smyčky (např. varlist1 a varlist2). Během každé iterace smyčky proměnné každého varlist jsou přiřazeny po sobě jdoucí hodnoty z odpovídajících seznam. Hodnoty v každém seznam jsou použity v pořadí od prvního do posledního a každá hodnota je použita přesně jednou. Celkový počet iterací smyček je dostatečně velký, aby bylo možné použít všechny hodnoty ze všech seznamů hodnot. Pokud seznam hodnot neobsahuje dostatek prvků pro každou ze svých proměnných smyčky v každé iteraci, pro chybějící prvky se použijí prázdné hodnoty. The přestávka a pokračovat prohlášení lze vyvolat uvnitř tělo, se stejným účinkem jako v pro příkaz. The pro každého vrací prázdný řetězec.

Příklady

Následující smyčka používá a j jako proměnné smyčky k iteraci přes páry prvků jednoho seznamu. nastavit x {}
foreach {ij} {abcdef} {
lappend x $ j $ i
}
# Hodnota x je „badcfe“
# K dispozici jsou 3 iterace smyčky.

Další smyčka používá a j iterovat souběžně přes dva seznamy. nastavit x {}
foreach i {abc} j {defg} {
lappend x $ i $ j
}
# Hodnota x je „adbecf {} g“
# K dispozici jsou 4 iterace smyčky.

Tyto dvě formy jsou kombinovány v následujícím příkladu. nastavit x {}
foreach i {abc} {jk} {defg} {
lappend x $ i $ j $ k
}
# Hodnota x je „adebfgc {} {}“
# K dispozici jsou 3 iterace smyčky.

S ním pracuje několik souvisejících příkazů pro každého počítaje v to pro, zatímco, přestávka, a pokračovat.