Курс Raku / Розширені / Контейнери / Контексти 🆕 / Вправи / Елемент чи список
Розв’язання: Елемент чи список
Ось один із можливих варіантів розв’язання задачі.
Код
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. Ці два контекстуалізатори є повними протилежностями:$( )пакує список в один елемент, а@( )розпаковує його назад.