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