Курс по Raku / Напреднали / Контейнери / Контексти 🆕 / Exercises / Елемент или списък

Решение: Елемент или списък

Ето едно възможно решение на задачата.

Код

my @a = 1, 2, 3;
my $count = 0;

my $x = $(@a);
$count++ for @($x);
say $count;

🦋 Можете да намерите изходния код във файла item-or-list.raku.

Резултат

3

Коментари

  1. my $x = $(@a) налага контекст на елемент, така че целият масив се опакова в единичния скалар $x, вместо да се разгъва.

  2. @($x) след това налага контекст на списък, разгъвайки $x обратно в трите му елемента. Следователно цикълът for се изпълнява три пъти, оставяйки брояча на 3. Двата контекстуализатора са точни противоположности: $( ) опакова списък в един елемент, @( ) го разопакова отново.

Навигация в курса

Елемент или списък   |   Наречия за индексиране 🆕