Rozdział 14. Domknięcia

Chroń środowisko! Stwórz domknięcie już dziś!

— Cormac Flanagan

Sortowanie wektora liczb całkowitych jest proste:

integers.sort();

Ale smutne jest to, że kiedy naprawdę musimy posortować jakieś dane, to bardzo rzadko jest to wektor liczb całkowitych. Zwykle są to rekordy o określonej strukturze i wbudowana metoda sortowania niestety nam się nie przyda:

struct City {
    name: String,
    population: i64,
    country: String,
    ...
}
 
fn sort_cities(cities: &mut Vec<City>) {
    cities.sort(); // Błąd: jak chcesz to posortować?
}

Rust poinformuje nas, że typ City nie implementuje interfejsu std::cmp::Ord. Musimy w jakiś inny sposób określić porządek sortowania, na przykład tak:

/// Funkcja pomocnicza, miasta ...

Get Programowanie w języku Rust now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.