Оператор for — 2. Новые возможности


02.11.2003, 20:59Несмотря на необычный синтаксис, новый оператор for можно рассматривать как функцию, принимающую два аргумента — список значений, и список переменных цикла, разделенные лексемой ->. Можно придумать самые разные комбинации этих параметров, вплоть до их отсутствия.


Один массив значений, две переменные цикла
for 1..10 -> $x, $y{
   print "$x $y\n";
}
 1 2
3 4
5 6
7 8
9 10

Два массива значений, одна переменная цикла
for (1..3), (10..13) -> $c{
   print "$c\n";
}
 1
2
3
10
11
12
13

Два массива, две переменные
for (1..3), (10..13) -> $x, $y{
   print "$x $y\n";
}
 1 2
3 10
11 12

Судя по результатам, можно сделать вывод о работе оператора for. Массивы значений объединяются в один общий список. При каждой итерации из этого списка выбираются необходимое число значений, присваиваемых переменным цикла: по одному значению на одну переменную. Цикл заканчивается, когда весь список выбран, либо на очередном шаге остаток списка слишком мал, чтобы его хватило на инициализацию всех переменных (это видно в последнем примере).



20 | 21 | 22 | 23 | 24 | 25 | 26