Rust 的 derive 属性允许你在结构体、枚举和联合上自动生成一些常用代码,从而减少重复性编码。以下是一些常用的 derive 功能:
-
Clone:自动为结构体和枚举实现
Clonetrait,方便地克隆数据。#[derive(Clone)] struct MyStruct { field: i32, } -
Copy:自动为结构体和枚举实现
Copytrait,使得它们的值可以复制。#[derive(Copy)] struct MyStruct { field: i32, } -
Debug:自动为结构体和枚举实现
Debugtrait,方便地在调试时打印数据。#[derive(Debug)] struct MyStruct { field: i32, } -
Default:自动为结构体和枚举实现
Defaulttrait,方便地创建默认值。#[derive(Default)] struct MyStruct { field: i32, } -
PartialEq:自动为结构体和枚举实现
PartialEqtrait,方便地比较它们的值是否相等。#[derive(PartialEq)] struct MyStruct { field: i32, } -
Eq:自动为结构体和枚举实现
Eqtrait,进一步扩展PartialEq的功能。#[derive(Eq)] struct MyStruct { field: i32, } -
PartialOrd:自动为结构体和枚举实现
PartialOrdtrait,方便地比较它们的值的大小。#[derive(PartialOrd)] struct MyStruct { field: i32, } -
Ord:自动为结构体和枚举实现
Ordtrait,进一步扩展PartialOrd的功能。#[derive(Ord)] struct MyStruct { field: i32, } -
Hash:自动为结构体和枚举实现
Hashtrait,方便地将它们的值作为哈希表的键。#[derive(Hash)] struct MyStruct { field: i32, } -
FromStr:自动为结构体和枚举实现
FromStrtrait,方便地将字符串解析为它们的值。#[derive(FromStr)] struct MyStruct { field: i32, } -
Display:自动为结构体和枚举实现
Displaytrait,方便地以字符串形式显示它们的值。#[derive(Display)] struct MyStruct { field: i32, }
这些 derive 功能可以组合使用,例如同时实现 Debug 和 Clone:
#[derive(Debug, Clone)]
struct MyStruct {
field: i32,
}