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