Курс языка программирования 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 тест по содержанию этой темы.
Навигация по курсу
← Массивы | Тест — Массивы и списки →
💪 Или перейдите сразу к упражнениям этого
раздела.