EPIC4 Manual


foreach

foreach [-]struktura zmienna {akcja}

Żeby nie truć o jakiś 'wymiarach struktury', powiem tylko, że foreach leci po poszczególnych elementach. A reszta wyjdzie w przykładach :)


Załóżmy strukturę zmiennych

@ var[1] = [jeden]
@ var[2] = [dwa]
@ var[3] = [trzy]
@ var[4] = [cztery]

froeach var cnt {
   echo *** Zmienna $cnt to $var[$cnt]
}

*** Zmienna 1 to jeden
*** Zmienna 2 to dwa
*** Zmienna 3 to trzy
*** Zmienna 4 to cztery

Ta strukura ma jeden 'wymiar', ale można działać także na wielu 'wymiarach':


@ cache[kanal][nick1] = 4734
@ cache[kanal][nick2] = 54385
@ cache[kanal][nick3] = 985
@ cache[czannel][nick1] = 843
@ cache[czannel][nick7] = 8574
@ cache[czannel][nick9] = 5

foreach cache chan {
   foreach cache.${chan} nick {
      echo *** Kanal $chan i nick $nick to $cache[$chan][$nick]
   }
}

*** Kanal kanal i nick1 to 4734
*** Kanal kanal i nick2 to 54385
*** Kanal kanal i nick3 to 985
*** Kanal czannel i nick1 to 843
*** Kanal czannel i nick7 to 8574
*** Kanal czannel i nick9 to 5


Oczywiście można także wylistować tylko jeden kanał


@ :chan = [czannel]

foreach cache.${chan} nick {
   [...]
}

Ale niemożliwe jest listowanie jednym foreach wg wyższego 'wymiaru' -- np. żeby sprawdzić na jakich kanałach działa nick1 (jest na kanal i czannel) -- muismy to zrobić jak używając 2x foreach.

Oprocz zmiennych można użyć foreach w strukturalnych aliasach. Należy jednak wtedy nazwę struktury poprzedzić '-' (myślnikiem). Np żeby skasować aliasy ze strukury 'blah':


foreach -blah xx {
   alias -blah[$xx]
}

Zobacz także: fe, fec, for, until, while



Lista Poleceń EpiC4 Home Następny Paragraf