Raku kurss / Pielikums 🆕 / Plūsma un funkcijas / Apakšprogrammas un funkcionālais stils / Exercises / Kārtošana pēc divām atslēgām

Risinājums: Kārtošana pēc divām atslēgām

Šeit ir iespējams risinājums uzdevumam.

Kods

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>)";
}

🦋 Atrodiet programmu failā sort-by-two-keys.raku.

Izvade

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

Komentāri

  1. Kad .sort bloks atgriež sarakstu, Raku salīdzina pēc pirmā elementa, tad pēc otrā, — tāpēc { .<age>, .<name> } vispirms kārto pēc vecuma un vārdu izmanto tikai vienādu vērtību sašķiršanai.

  2. Annai un Carai ir vienāds vecums 30, tāpēc tās sakārtotas alfabētiski; Bobs, būdams jaunāks, nāk pirmais.

Kursa navigācija

Kārtošana pēc divām atslēgām   |   Tipi un teksta mašīnas