当前位置: 首页 > news >正文

百度哪个网站做贸易100个免费推广网站的排名

百度哪个网站做贸易,100个免费推广网站的排名,郑州做网站哪家好,实时积分榜一、源码 这段代码定义了一个类型级别的比较系统,主要用于在编译时比较类型并得出比较结果。它使用了 Rust 的类型系统和标记特征(trait)来实现这一功能。 use crate::sealed::Sealed; use crate::number::{Z0, P1, N1}; use core::cmp::Ordering;// 比较结果类型…

一、源码

这段代码定义了一个类型级别的比较系统,主要用于在编译时比较类型并得出比较结果。它使用了 Rust 的类型系统和标记特征(trait)来实现这一功能。

use crate::sealed::Sealed;
use crate::number::{Z0, P1, N1};
use core::cmp::Ordering;// 比较结果类型别名
pub type Equal = Z0;   // 相等
pub type Less = N1;    // 小于
pub type Greater = P1; // 大于/// 标记特征(trait),用于比较结果类型:`Greater`、`Equal` 和 `Less`
pub trait Ord: Sealed {/// 将类型转换为运行时的 `Ordering` 值fn to_ordering() -> Ordering;
}impl Ord for Greater {#[inline]fn to_ordering() -> Ordering {Ordering::Greater  // 返回"大于"的比较结果}
}impl Ord for Less {#[inline]fn to_ordering() -> Ordering {Ordering::Less  // 返回"小于"的比较结果}
}impl Ord for Equal {#[inline]fn to_ordering() -> Ordering {Ordering::Equal  // 返回"等于"的比较结果}
}/// 类型比较运算符,用于比较 `Self` 和 `Rhs` 类型。
/// 类似于 [`core::cmp::Ord::cmp`] 但用于类型比较。
///
/// # 示例
/// ```rust
/// use unitrix::number::{Cmp, Ord, N1, Z0, P1};
/// use std::cmp::Ordering;
///
/// assert_eq!(<Z0 as Cmp<N1>>::Output::to_ordering(), Ordering::Greater);
/// assert_eq!(<Z0 as Cmp<Z0>>::Output::to_ordering(), Ordering::Equal);
/// assert_eq!(<Z0 as Cmp<P1>>::Output::to_ordering(), Ordering::Less);
/// ```
pub trait Cmp<Rhs = Self> {/// 比较结果的类型(只能是 `Greater`、`Less` 或 `Equal` 之一)type Output;#[doc(hidden)]  // 隐藏内部实现fn compare(&self, rhs: &Rhs) -> Self::Output;
}

二、源码分析

  1. 类型别名定义
pub type Equal = Z0;   // 相等
pub type Less = N1;    // 小于
pub type Greater = P1; // 大于

定义了三种比较结果的类型别名:

  • Equal 表示相等,对应 Z0(零类型)

  • Less 表示小于,对应 N1(负一类型)

  • Greater 表示大于,对应 P1(正一类型)

  1. Ord 特征(trait)
pub trait Ord: Sealed {fn to_ordering() -> Ordering;
}

这是一个标记特征,用于比较结果类型(Greater、Equal 和 Less)。它要求实现类型能够将自己的比较结果转换为运行时的 Ordering 枚举值。

为三种比较结果类型实现了 Ord 特征:

  • Greater 转换为 Ordering::Greater

  • Less 转换为 Ordering::Less

  • Equal 转换为 Ordering::Equal

  1. Cmp 特征(trait)
pub trait Cmp<Rhs = Self> {type Output;fn compare(&self, rhs: &Rhs) -> Self::Output;
}

这是核心的比较特征,类似于 core::cmp::Ord::cmp,但用于类型级别的比较。它定义了:

  • Output:比较结果的关联类型(必须是 Greater、Less 或 Equal 之一)

  • compare 方法:执行比较操作并返回结果(虽然定义为方法,但主要用于类型系统)

  1. 使用示例
assert_eq!(<Z0 as Cmp<N1>>::Output::to_ordering(), Ordering::Greater);
assert_eq!(<Z0 as Cmp<Z0>>::Output::to_ordering(), Ordering::Equal);
assert_eq!(<Z0 as Cmp<P1>>::Output::to_ordering(), Ordering::Less);

展示了如何使用这个系统:

  1. 比较 Z0 和 N1,结果是 Greater(0 > -1)

  2. 比较 Z0 和 Z0,结果是 Equal(0 == 0)

  3. 比较 Z0 和 P1,结果是 Less(0 < 1)

  4. 其他说明

  • Sealed 特征用于防止外部代码实现这些特征,保持实现的封闭性

  • #[inline] 属性提示编译器内联这些简单函数

  • #[doc(hidden)] 隐藏了 compare 方法的文档,表示这是内部实现细节

这个系统主要用于类型级别的编程,允许在编译时进行类型比较,而不是在运行时。这在一些高级类型系统中非常有用,比如在构建类型安全的单位系统或维度分析时。

http://www.dtcms.com/a/409674.html

相关文章:

  • .net网站 开发中山软件开发公司
  • 南宁网站建公司吗建设一个机械公司网站多少钱
  • 智盈中心网站建设公司的网站是怎么建立
  • 花都网站建设公司做的网站怎么打开是白板
  • 商标设计网站排行百度关键词seo排名优化
  • 资源网站建设多少钱百度排名工具
  • 学校做网站及费用以前在线做预算的网站
  • 网站建设蓝图ppt12306网站学生做
  • 外贸工厂的网站建设汕头网站模板价格
  • 襄阳网站建设企业乐清城市网官网
  • 网络公司网站asp上海营业执照网上申请
  • 山东省建设管理中心网站首页百度一下建设部网站
  • 网站自适应手机端网站建设鞍山
  • 做平台网站要多久哪的网页设计培训好
  • 阿里能帮做网站吗wordpress文章加载慢6
  • 西安网站架设公司石家庄信息网官方网站
  • flash网站的制作wordpress宝塔安装
  • 金螳螂家装官网学生班级优化大师
  • 在线做带字头像的网站网站建设教程培训
  • 论述网站建设的步骤页面禁止访问
  • 做星座网站邀请推广app
  • 网站做淘宝客排名会掉吗微信小程序制作视频教程
  • 上海频道做网站怎么样免费外链工具
  • 水稻网站做go分析服务器租赁合同范本
  • 阿里云可以做几个网站代理ip自动提取网站源码
  • 广东省省建设厅网站企业优化网站
  • 网站开发进度缓慢兼容ie8的网站模板
  • 重庆网站关键词优化推广许昌网站建设费用
  • 建一个企业网站要花多少钱沧州免费网站建设
  • 祝贺公司网站上线美丽定制 网站模板