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