Update CH21

This commit is contained in:
Peng Hailin, 2023-04-10 06:34:16 +08:00
parent c877706ed2
commit efe643cfc3

View File

@ -336,4 +336,19 @@ fn main() {
**`Debug` for Programmer Output**
`Debug` 特质实现了格式字符串中的格式化,所谓格式字符串,即咱们通过在 `{}` 里添加 `:?` 所表示的。
`Debug` 特质允许咱们为调试目的打印某种类型的实例,如此咱们以及用到咱们类型的其他编程者,就可以在程序执行的某个特定时刻,就其某个实例加以探查。
在比如用到 `assert_eq!` 宏中等情况下,`Debug` 特质便是要求使用的。`assert_eq!` 这个宏在相等断言失败时,就会打印出作为参数所给到的两个实例值,如此编程者就可以看到为何这两个实例不相等。
### 用于相等比较的 `PartialEq``Eq`
`PartialEq` 特质允许咱们比较某种类型的两个实例,来检查他们是否相等,并实现 `==``!=` 运算符的应用。
`PartialEq` 进行派生,就会实现 `eq` 方法。当 `ParitalEq` 实在结构体上实现的时,只有在两个实例的 *全部* 字段都相等时,他们才是相等的,且在有任何字段不等时,两个实例便不相等。当在枚举上派生时,枚举的各个变种与自身相等,而不等于其他任何变种。
在比如用到需要比较某个类型两个实例是否相等的 `assert_eq!` 宏等之下,就要求派生 `PartialEq` 特质。