Курс по Raku / Напреднали / Контейнери / Подредени контейнери
Списъци
Списъкът също е подредена колекция от стойности, но за разлика от масива той е неизменяем: не можете да променяте, добавяте или премахвате елементите му. Списък се записва като последователност от стойности, разделени със запетая, често поставени в скоби:
my $colours = ('red', 'green', 'blue');Можете да прочетете елементите на списък по техния индекс и да попитате колко са, точно както при масив:
my $colours = ('red', 'green', 'blue');
say $colours[0]; # red
say $colours.elems; # 3Разликата се проявява, когато се опитате да промените елемент. При масив това работи, защото всеки елемент е контейнер:
my @array = 1, 2, 3;
@array[0] = 10;
say @array; # [10 2 3]При списък това е грешка, тъй като елементите на списък са обикновени стойности, а не контейнери:
my $list = (1, 2, 3);
$list[0] = 10;Втората програма спира със съобщение:
Cannot modify an immutable List ((1 2 3))
in block <unit> at t.raku line 2Така че използвайте масив (сигил @), когато трябва да
променяте съдържанието, и списък, когато трябва само да съхранявате
фиксирана последователност от стойности.
Практика
Направете 1 тест върху съдържанието на тази тема.
Навигация в курса
← Масиви | Тест — Масиви и списъци →
💪 Или преминете направо към упражненията в този
раздел.