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,
}