特性(Trait)

在前一章中,我们学习了Rust的类型和所有权系统的基础知识。现在是时候深入研究一下了:我们将探索特质,Rust对接口的理解。

一旦你了解了特质,你就会开始到处看到它们的踪迹。实际上,你已经在前一章中看到了特质的实际应用,比如.into()调用以及诸如==+这样的运算符。

除了特质这一概念之外,我们还将涵盖Rust标准库中定义的一些关键特质:

  • 运算符特质(例如 AddSubPartialEq 等)
  • FromInto,用于不可失败的转换
  • CloneCopy,用于复制值
  • Deref 和解引用强制转换
  • Sized,标记具有已知大小的类型
  • Drop,用于自定义清理逻辑

既然我们将要讨论转换,我们也会借此机会填补前一章中的一些“知识空白”——比如,"A title"确切是什么?也是时候更深入学习切片了!

参考资料

  • 本节练习位于 exercises/04_traits/00_intro