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.