Enum std::cmp::Ordering 1.0.0[−][src]
pub enum Ordering { Less, Equal, Greater, }
Expand description
Variants
比较值小于另一个值的排序。
比较值等于另一个的排序。
比较值大于另一个值的排序。
Implementations
反转 Ordering
。
Less
变为Greater
。Greater
变为Less
。Equal
变为Equal
。
Examples
基本行为:
use std::cmp::Ordering; assert_eq!(Ordering::Less.reverse(), Ordering::Greater); assert_eq!(Ordering::Equal.reverse(), Ordering::Equal); assert_eq!(Ordering::Greater.reverse(), Ordering::Less);Run
此方法可用于反转比较:
let data: &mut [_] = &mut [2, 10, 5, 8]; // 从最大到最小对数组进行排序。 data.sort_by(|a, b| a.cmp(b).reverse()); let b: &mut [_] = &mut [10, 8, 5, 2]; assert!(data == b);Run
链接两个排序。
如果不是 Equal
,则返回 self
。否则返回 other
。
Examples
use std::cmp::Ordering; let result = Ordering::Equal.then(Ordering::Less); assert_eq!(result, Ordering::Less); let result = Ordering::Less.then(Ordering::Equal); assert_eq!(result, Ordering::Less); let result = Ordering::Less.then(Ordering::Greater); assert_eq!(result, Ordering::Less); let result = Ordering::Equal.then(Ordering::Equal); assert_eq!(result, Ordering::Equal); let x: (i64, i64, i64) = (1, 2, 7); let y: (i64, i64, i64) = (1, 5, 3); let result = x.0.cmp(&y.0).then(x.1.cmp(&y.1)).then(x.2.cmp(&y.2)); assert_eq!(result, Ordering::Less);Run
用给定的函数链接顺序。
如果不是 Equal
,则返回 self
。
否则,调用 f
并返回结果。
Examples
use std::cmp::Ordering; let result = Ordering::Equal.then_with(|| Ordering::Less); assert_eq!(result, Ordering::Less); let result = Ordering::Less.then_with(|| Ordering::Equal); assert_eq!(result, Ordering::Less); let result = Ordering::Less.then_with(|| Ordering::Greater); assert_eq!(result, Ordering::Less); let result = Ordering::Equal.then_with(|| Ordering::Equal); assert_eq!(result, Ordering::Equal); let x: (i64, i64, i64) = (1, 2, 7); let y: (i64, i64, i64) = (1, 5, 3); let result = x.0.cmp(&y.0).then_with(|| x.1.cmp(&y.1)).then_with(|| x.2.cmp(&y.2)); assert_eq!(result, Ordering::Less);Run