2.2.2 实现常见 Trait

实现常见 Trait — Comprehensive Rust

译文 · 基于 Comprehensive Rust

原文链接: https://google.github.io/comprehensive-rust/idiomatic/foundations-api-design/predictable-api/common-traits.html

2.2.2 实现常见 Trait

1
2
3
4
5
6
7
8
// Copyright 2025 Google LLC
// SPDX-License-Identifier: Apache-2.0
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone /* ... */)]
pub struct MyData {
    pub name: String,
    pub number: usize,
    pub data: [u8; 64],
}
  • Trait 是 Rust 语言最强大的工具之一。语言与生态期望你使用它们,因此可预测性很大一部分就在于类型实现了哪些 trait!

  • 你应在自己撰写的类型上慷慨地实现 trait,但也有注意事项!

  • 记住,许多 trait 可以派生(derive):由编译器插件(宏)为你编写实现!

  • 生态 trait(如 De/Serialize)的作者为用户提供了 derive 实现,使得实现这类 trait 对开发者而言几乎无需投入!


2.2.2.1 Debug

01-Debug — Comprehensive Rust

2.2.2.2 Display

02-Display — Comprehensive Rust

2.2.2.3 PartialEq 与 Eq

03-PartialEq 与 Eq — Comprehensive Rust

2.2.2.4 PartialOrd 与 Ord

04-PartialOrd 与 Ord — Comprehensive Rust

2.2.2.5 Hash

05-Hash — Comprehensive Rust

2.2.2.6 Clone

06-Clone — Comprehensive Rust

2.2.2.7 Copy

07-Copy — Comprehensive Rust

2.2.2.8 From 与 Into

08-From 与 Into — Comprehensive Rust

2.2.2.9 TryFrom 与 TryInto

09-TryFrom 与 TryInto — Comprehensive Rust

2.2.2.10 Serialize 与 Deserialize

10-Serialize 与 Deserialize — Comprehensive Rust

最后修改 August 11, 2026: 更新 (70a5af133)