
for
Перебирая массив, стрелочкой мы можем направить текущее значение в какой-нибудь скаляр.
| | #!/usr/bin/perl6
my @sing=<hortus horte horti horto hortum horto>;
for @sing -> $verb {
$verb.say
} | | hortus
horte
horti
horto
hortum
horto |
Если без стрелочки, то текущее значение направляется в $_:| | #!/usr/bin/perl6
my @sing=<hortus horte horti horto hortum horto>;
for @sing {
$_.say
} | | hortus
horte
horti
horto
hortum
horto |
Ладно. А работает ли foreach? Оказывается, что его теперь нет. Вместо него for. # mutatio postrema: 13 Aug 2010
Теперь для перебора элементов массива с присвоением значения какой-то переменной служит конструкция со стрелочкой ->
| | #!/usr/bin/perl6
my @list=<aqua aquae aquae aquarum aquae aquis aquam aquas aqua aquis>;
for @list -> $verb {$verb.say} | | aqua
aquae
aquae
aquarum
aquae
aquis
aquam
aquas
aqua
aquis |
Имеем склонение aqua по падежам. Но тут чередуется единственное число с множественным. Для удобства можно выбирать сразу по два слова.| | #!/usr/bin/perl6
my @list=<aqua aquae aquae aquarum aquae aquis aquam aquas aqua aquis>;
for @list -> $sing,$plur {"$sing $plur".say} | | aqua aquae
aquae aquarum
aquae aquis
aquam aquas
aqua aquis |
Очень удобно. Можно выбирать по три или по большему числу элементов. # mutatio postrema: 31 Aug 2010
А что делает for %hash ?
| | #!/usr/bin/perl6
my %hash=<perdo гублю amo люблю audio слушаю>;
for %hash {.say} | | "perdo" => "гублю"
"amo" => "люблю"
"audio" => "слушаю" |
Не очень понятно.| | #!/usr/bin/perl6
my %hash=<perdo гублю amo люблю audio слушаю>;
for %hash {.key.say}
'---------'.say;
for %hash {.value.say} | | perdo
amo
audio
---------
гублю
люблю
слушаю |
Sic. Следственный эксперимент показал, что for %hash перебирает элементы хэша, возвращая пары "ключ - значение". Эту пару можно распечатать. А можно отдельно из пары извлечь объект-ключ и объект-значение. Интересно, а что можно ещё делать с парами как таковыми? # mutatio postrema: 8 Sep 2010
|