Rust 基础特性的杂文集
本书其实就是 Rust 社区内通称 The Book 的官方参考书的汉化版。这本书在网上可以免费阅读,购置的原因一是没仔细看被忽悠了,二是确实可以作为回顾来用,而且确实中文读起来比英文快些,也能看看译者对其中一些内容的观点。
本书如同张汉东所言,是一本内容组织上堪称灾难的书籍,这也是为什么书评的名字将其称为基础特性的杂文集的原因。
Rust 社区还有其他一些书籍,讲解了 Rust 的并发编程,Rust 核心机制的实现细节和 Cargo 的工作机制等等。要想在生产环境稳妥、顺畅地使用 Rust,这些知识必不可少。但是本书定位成入门书籍,就完全不涉及。
可是,作为入门书,最重要的是具有初学者的视角,将功能特性从最常用到最不常用,按照主题聚合讲解。本书的几个样例学习,类似于我经常吐槽的《重构》一书的案例,放在很前面或者突然乱入,只有作者本人才了解样例的细节,其实读者很难看懂或者明白背后的知识。
模式匹配作为 Rust 最常用的功能之一,一前一后的分开讲,后面的甚至放到了倒数第二章,但是其实所有的内容都是初级内容。迭代器和闭包,一个作为集合 API 的关键组成部分,另一个是函数调用很自然涉及的内容,却被打包在一起混着讲,同时离它们关联的话题十万八千里。
总之,这本书其实适合你有一定的 Rust 经验,同时熟悉 C++ 经年累月积累的资源管理和内存管理最佳实践,以及现代的并发编程和古老的函数式编程的知识。这样,才能在作者的行文中找到 Rust 如何通过所有权模型和类型系统来规范落实这些最佳实践。
本书的内容其实讲得还算不错,把以下几个概念,如果你综合全书来看,是讲得比较清楚了。
第一个是所有权,尤其是唯一可变引用或多个不可变借用,以及贯穿全书的针对每个特性按照所有权模型来分析其背后原理的方式。真的是,懂得都懂,第一遍看不懂就是不懂。
第二个是字符串,讲清楚了字符串的复杂性。
第三个是指针,但是需要你忘记这本书沙雕的组织方式,综合理解它提到的 Box / Rc / RefCell / Arc / Mutex 的时候实际在说什么,并分门别类的主题化理解。
其他的内容说的差强人意,只能说好像懂了一点,又好像啥都没懂。不过对于闭包类型、生命周期、模块化和全限定名等等,还是提供了比较清楚的解释说明。
要想真的理解 Rust 语言的应用,还得从实际靠谱的 Rust 项目改起,比如 tokio、tikv 和 materialize 等。
