Cmp Enums
Comparison enums
Ordering
Section titled “Ordering”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 เพื่อปลดล็อกบทความทั้งหมด
Login with Google