Курс по Raku / Приложение 🆕 / Поток и функции / Подпрограми и функционален стил / Exercises / Сортиране по два ключа
Решение: Сортиране по два ключа
Ето едно възможно решение на задачата.
Код
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>)";
}🦋 Намерете програмата във файла sort-by-two-keys.raku.
Изход
Bob (25)
Anna (30)
Cara (30)Коментари
Когато блокът на
.sortвърне списък, Raku сравнява по първия елемент, после по втория — така че{ .<age>, .<name> }сортира първо по възраст и използва името само за разрешаване на равенствата.Anna и Cara имат еднаква възраст
30, така че са подредени по азбучен ред; Bob, бидейки по-млад, идва пръв.