Raku-Kurs / Anhang 🆕 / Ablauf und Funktionen / Subroutinen und funktionaler Stil / Exercises / Nach zwei Schlüsseln sortieren

Lösung: Nach zwei Schlüsseln sortieren

Hier ist eine mögliche Lösung der Aufgabe.

Code

my @people =
    { name => 'Anna', age => 30 },
    { name => 'Bob',  age => 25 },
    { name => 'Cara', age => 30 };

for @people.sort({ .<age>, .<name> }) -> %person {
    say "%person<name> (%person<age>)";
}

🦋 Du findest den Quellcode in der Datei sort-by-two-keys.raku.

Ausgabe

Bob (25)
Anna (30)
Cara (30)

Kommentare

  1. Liefert ein .sort-Block eine Liste, vergleicht Raku nach dem ersten Element, dann nach dem zweiten — { .<age>, .<name> } sortiert also zuerst nach Alter und verwendet den Namen nur, um Gleichstände aufzulösen.

  2. Anna und Cara teilen das Alter 30, sie werden also alphabetisch geordnet; Bob, der jünger ist, kommt zuerst.

Kursnavigation

Nach zwei Schlüsseln sortieren   |   Typen und Textmaschinen