quizzes
This commit is contained in:
30
practice/src/bin/f_largest_by_key.rs
Normal file
30
practice/src/bin/f_largest_by_key.rs
Normal file
@@ -0,0 +1,30 @@
|
||||
// Напиúите обобûённуĀ функøиĀ largest_by_key<T, F, K>(list: &[T], key: F) -> Option<&T>, где:
|
||||
// ● F: Fn(&T) -> K,
|
||||
// ● K: PartialOrd.
|
||||
// Функøиā должна возвраûатþ ÿлемент с максималþнýм знаùением key(item).
|
||||
|
||||
//fn largest_by_key
|
||||
|
||||
|
||||
|
||||
|
||||
fn main() {
|
||||
// Пример из задания
|
||||
let words = ["apple", "banana", "cherry"];
|
||||
let longest = largest_by_key(&words, |s| s.len());
|
||||
println!("{:?}", longest); // Some("banana")
|
||||
|
||||
// Дополнительные примеры
|
||||
let numbers = [1, 42, 3, 100, 5];
|
||||
let largest_num = largest_by_key(&numbers, |&n| n);
|
||||
println!("{:?}", largest_num); // Some(100)
|
||||
|
||||
struct Person { name: String, age: u32 }
|
||||
let people = [
|
||||
Person { name: "Alice".to_string(), age: 30 },
|
||||
Person { name: "Bob".to_string(), age: 25 },
|
||||
Person { name: "Charlie".to_string(), age: 35 },
|
||||
];
|
||||
let oldest = largest_by_key(&people, |p| p.age);
|
||||
println!("Oldest: {:?}", oldest.map(|p| &p.name)); // Some("Charlie")
|
||||
}
|
||||
Reference in New Issue
Block a user