Курс по Raku / Напреднали / Контейнери / Контексти 🆕 / Exercises / Елемент или списък
Решение: Елемент или списък
Ето едно възможно решение на задачата.
Код
my @a = 1, 2, 3;
my $count = 0;
my $x = $(@a);
$count++ for @($x);
say $count;🦋 Можете да намерите изходния код във файла item-or-list.raku.
Резултат
3Коментари
my $x = $(@a)налага контекст на елемент, така че целият масив се опакова в единичния скалар$x, вместо да се разгъва.@($x)след това налага контекст на списък, разгъвайки$xобратно в трите му елемента. Следователно цикълътforсе изпълнява три пъти, оставяйки брояча на3. Двата контекстуализатора са точни противоположности:$( )опакова списък в един елемент,@( )го разопакова отново.