Курс 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 тест за змістом цієї теми.

Навігація курсом

Масиви   |   Тест — Масиви та списки


💪 Або перейдіть одразу до вправ цього розділу.