// dictionary
Derive マクロ.
Derive マクロ
#[derive(...)] アトリビュートを使うと、標準的なトレイト(Trait)の実装をコンパイラが自動生成します。手動での実装を避けることで、コードの簡潔性が向上します。
よく使われるDeriveマクロ
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
struct Point {
x: i32,
y: i32,
}
fn main() {
let p1 = Point { x: 0, y: 0 };
let p2 = p1; // Copy により所有権がコピーされる
println!("{:?}", p1); // Debug トレイトで表示
println!("{}", p1 == p2); // PartialEq トレイト
}
複合的な Derive
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
enum Status {
Active,
Inactive,
Pending,
}
各トレイトの機能:
Debug: デバッグ出力({:?})Clone: 深いコピーCopy: 浅いコピー(自動)PartialEq/Eq: 等価比較PartialOrd/Ord: 順序比較Hash: ハッシュ計算(HashMapなどで使用)Default: デフォルト値の生成
カスタムトレイトの実装は手動で行う必要があります。
この辞書が使われているページ
backlinks 2