Raku-Kurs / Fortgeschritten / Container / Geordnete Container
Listen
Eine Liste ist ebenfalls eine geordnete Sammlung von Werten, aber im Gegensatz zu einem Array ist sie unveränderlich: Du kannst ihre Elemente nicht ändern, hinzufügen oder entfernen. Eine Liste wird als kommagetrennte Folge von Werten geschrieben, oft in Klammern eingeschlossen:
my $colours = ('red', 'green', 'blue');Du kannst die Elemente einer Liste über ihren Index lesen und abfragen, wie viele es gibt, genau wie bei einem Array:
my $colours = ('red', 'green', 'blue');
say $colours[0]; # red
say $colours.elems; # 3Der Unterschied zeigt sich, wenn du versuchst, ein Element zu ändern. Bei einem Array funktioniert es, weil jedes Element ein Container ist:
my @array = 1, 2, 3;
@array[0] = 10;
say @array; # [10 2 3]Bei einer Liste ist es ein Fehler, da die Elemente einer Liste einfache Werte und keine Container sind:
my $list = (1, 2, 3);
$list[0] = 10;Das zweite Programm bricht mit einer Meldung ab:
Cannot modify an immutable List ((1 2 3))
in block <unit> at t.raku line 2Verwende also ein Array (das Sigil @), wenn du den
Inhalt ändern musst, und eine Liste, wenn du nur eine feste Folge von
Werten aufbewahren willst.
Praxis
Lösen Sie 1 Quiz zum Inhalt dieses Themas.
Kursnavigation
← Arrays | Quiz — Arrays und Listen →
💪 Oder springen Sie direkt zu den Übungen dieses
Abschnitts.