當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust f32.total_cmp用法及代碼示例


本文簡要介紹rust語言中 f32.total_cmp 的用法。

用法

pub fn total_cmp(&self, other: &f32) -> Ordering

返回 self 和其他值之間的排序。與浮點數之間的標準部分比較不同,此比較始終根據 IEEE 754(2008 修訂版)浮點標準中定義的 totalOrder 謂詞生成排序。這些值按以下順序排序:

  • 負麵安靜NaN
  • 負麵信號NaN
  • 負無窮大
  • 負數
  • 負次正規數
  • 負零
  • 正零
  • 正次正規數
  • 正數
  • 正無窮大
  • 積極信號NaN
  • 積極安靜NaN

請注意,此函數並不總是與 f32 PartialOrd PartialEq 實現一致。特別是,它們將負零和正零視為相等,而total_cmp 則不然。

示例

#![feature(total_cmp)]
struct GoodBoy {
    name: String,
    weight: f32,
}

let mut bois = vec![
    GoodBoy { name: "Pucci".to_owned(), weight: 0.1 },
    GoodBoy { name: "Woofer".to_owned(), weight: 99.0 },
    GoodBoy { name: "Yapper".to_owned(), weight: 10.0 },
    GoodBoy { name: "Chonk".to_owned(), weight: f32::INFINITY },
    GoodBoy { name: "Abs. Unit".to_owned(), weight: f32::NAN },
    GoodBoy { name: "Floaty".to_owned(), weight: -5.0 },
];

bois.sort_by(|a, b| a.weight.total_cmp(&b.weight));

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 f32.total_cmp。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。