rust编程之道

这是一本大概是我18年买的书,当初是打算紧随Mozilla的脚步学习使用Rust,然而这本书显然不太适合那个时代的我学习。当时我只是个完全的前端,过了第3章类型管理的时候基本上就是一脸懵逼。

可以说经过19年一年的后端工程师工作,我是更加了解关于线程、内存管理之类的概念。而且由于过去一年读了RxJS,对函数编程范式更加了解。另外在18年中旬,我是完全的面向对象范式追随者,对于Rust里面的一些范式显然不是很理解。

这本书讲得很全面,可以说,如果拿里面的某些章节详细写出来就可以做大学教材了。但是弊端肯定是有的,比如Rust的应用,这里基本上没提,不过也可以谅解,毕竟就是在这本书出版后两年的今天,要说Rust的存在感依然很低;另外,很多作者用的很习惯的词汇往往会漏注释,毕竟我不是专门抽出一段时间来看这本书的,乍一看某个缩写还真难回忆它对应语境里面应该是什么。

笔记

rust虽然使用类C语法,但是很多地方真的和C语言及其它语言大相径庭。

比如用来代替interface的trait系统

// typescript
interface A {
    bar()
}

class B implements A {
    bar() {

    }
}

在Rust中

struct B {

}

impl A for B {
    fn bar() -> () {

    }
}

第182页提供了trait系统的不足,当时没看懂,以后回来看好了。

另外259页生命周期参数,比较复杂,个人感觉等用到的时候再看吧。

322页和361页,关于原生闭包和迭代器语法糖的第三方实现。

435页RAII模式,以后抽时间看把。

727页,无状态协程async/await语法糖实现。