Skip to content
เข้าสู่ระบบ

Cmp Enums

Comparison enums

use std::cmp::Ordering;
fn main() {
// Ordering from comparison
let result = 5.cmp(&10);
println!("5 vs 10: {:?}", result);
let result = 10.cmp(&10);
println!("10 vs 10: {:?}", result);
let result = 15.cmp(&10);
println!("15 vs 10: {:?}", result);
// Match on ordering
let a = 42;
let b = 37;
match a.cmp(&b) {
Ordering::Less => println!("{} < {}", a, b),
Ordering::Equal => println!("{} == {}", a, b),
Ordering::Greater => println!("{} > {}", a, b),
}
// then() for secondary comparison
#[derive(Debug)]
struct Person { name: String, age: u32 }
let people = vec![
Person { name: "Alice".to_string(), age: 30 },
Person { name: "Bob".to_string(), age: 25 },
Person { name: "Alice".to_string(), age: 25 },
];
// Sort by name, then age
let mut sorted = people;
sorted.sort_by(|a, b| {
a.name.cmp(&b.name).then(a.age.cmp(&b.age))
});
for p in &sorted {
println!("{:?}", p);
}
}

เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม

ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด