rust笔记4-属性derive

在 Rust 中,#[derive] 是一种属性(attribute),用于自动为类型实现某些 Trait。通过 #[derive],编译器可以自动生成这些 Trait 的默认实现,从而减少手动编写重复代码的工作量。

#[derive] 通常用于实现一些常见的 Trait,例如:

  • Debug:为类型生成格式化输出的代码。
  • Clone:为类型生成克隆代码。
  • Copy:为类型生成按位复制的代码。
  • PartialEqEq:为类型生成相等性比较的代码。
  • PartialOrdOrd:为类型生成排序相关的代码。
  • Hash:为类型生成哈希代码。
  • Default:为类型生成默认值的代码。

下面我们重点介绍 #[derive(PartialEq, PartialOrd)],并详细说明它们的作用和使用场景。


1. #[derive(PartialEq)]

作用
  • PartialEq 是一个用于比较两个值是否相等的 Trait。
  • 它定义了 ==!= 运算符的行为。
  • PartialEq 允许部分相等性比较,即某些值可能无法比较(例如浮点数中的 NaN)。
使用场景
  • 当你需要为自定义类型实现相等性比较时,可以使用 #[derive(PartialEq)]
  • 适用于结构体(struct)和枚举(enum)。
示例
#[derive(PartialEq)]
struct Point {
   
    x: i32,
    y: i32,
}

fn main() {
   
    let p1 = Point {
    x: 1, y: 2 };
    let p2 = Point {
    x: 1, y: 2 };
    let p3 = Point {
    x: 3, y: 4 };

    println!("p1 == p2: {}", p1 == p2); // 输出: true
    println!("p1 &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值