特质 (Traits)
上一章我们覆盖了 Rust 类型系统和所有权 (ownership) 系统的基础。
现在该深入挖掘了:我们要探索特质 (trait)——Rust 对接口 (interface) 的诠释。
一旦你了解了特质,就会开始在各处看到它们的影子。
事实上,前一章你已经在不断接触特质了,例如 .into() 调用以及 ==、+ 这类运算符。
除了把特质作为一个概念讨论之外,本章还会覆盖 Rust 标准库 (standard library) 中定义的几个关键特质:
- 运算符特质(例如
Add、Sub、PartialEq等) From与Into,用于不会失败的转换 (infallible conversions)Clone与Copy,用于复制值Deref与解引用强制转换 (deref coercion)Sized,用于标记大小已知的类型Drop,用于自定义清理逻辑
既然要谈到类型转换,我们也会顺便填补上一章遗留的一些"知识空白"——比如 "A title" 究竟是什么?是时候多了解一下切片 (slice) 了!
原文链接:英文原文