第 13 章 实用工具特型
吉姆•布兰迪
科学无非就是在自然界的多样性中寻求统一性(或者更确切地说,是在我们经验的多样性中寻求统一性)。用 Coleridge 的话说,诗歌、绘画、艺术,同样是在多样性中寻求统一性。
——Jacob Bronowski
本章讲解了所谓的 Rust“实用工具”特型,这是标准库中各种特型的“百宝箱”,它们对 Rust 的编写方式有相当大的影响,所以,只有熟悉它们,你才能写出符合 Rust 语言惯例的代码并据此为你的 crate 设计公共接口,让用户认为这些接口是符合 Rust 风格的。Rust 实用工具特型可分为三大类。
语言扩展特型
第 12 章中介绍的运算符重载特型能让你在自己的类型上使用 Rust 的表达式运算符,同样,还有其他几个标准库特型也是 Rust 的扩展点,允许你把自己的类型更紧密地集成进语言中。这类特型包括 Drop、Deref 和 DerefMut,以及转换特型 From 和 Into。我们将在本章中讲解它们。
标记特型
这类特型多用作泛型类型变量的限界,以表达无法以其他方式捕获的约束条件。Sized 和 Copy 就属于这类特型。
公共词汇特型
这类特型不涉及任何编译器魔术,你完全可以在自己的代码中定义其等效特型。之所以定义它们,是为了给常见问题制定一些约定俗成的解决方案。这对 crate 和模块之间的公共接口来说特别有价值:通过减少不必要的变体,让接口更容易理解,也增加了把来自不同 crate 的特性轻易插接在一起的可能性,而且无须样板代码或自定义胶水代码。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
![](https://static001.geekbang.org/resource/image/d0/e4/d0880927e2a522a038be2d04bf19dfe4.png)
本文深入探讨了Rust编程语言中的特型及其应用。重点介绍了Drop、Iterator、IntoIterator、Hash、Send、Sync等标准库特型的使用方法和实现原理,以及固定大小类型和无固定大小类型的概念及其在Rust中的应用和限制。此外,还介绍了Clone、Copy、Deref、DerefMut、Default、AsRef、AsMut、Borrow、BorrowMut、From和Into等特型的使用方法和注意事项,以及它们在Rust中的应用。特别是介绍了From和Into特型的实现原理,以及它们在类型转换中的作用。另外,还介绍了TryFrom和TryInto特型的容错转换机制,以及ToOwned特型的应用。通过详细介绍各种特型的使用方法和原理,为读者提供了重要的参考价值。文章内容丰富,适合想要深入了解Rust编程语言的读者阅读。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Rust 程序设计(第 2 版)》
《Rust 程序设计(第 2 版)》
立即购买
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论