Курс по 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 тест върху съдържанието на тази тема.

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

Масиви   |   Тест — Масиви и списъци


💪 Или преминете направо към упражненията в този раздел.