|
|
|
@ -26,27 +26,27 @@ Rust 跟其它语言不一样,你无法看了一遍语法,然后就能上手
|
|
|
|
|
|
|
|
|
|
因此,大家一定要舍得投入时间,沉下心去读一本好书,这本书会带你深入浅出地学习使用 Rust 所需的各种知识,还会带你提前趟坑,这些坑往往是需要大量的时间才能领悟的。
|
|
|
|
|
|
|
|
|
|
在以前我可能会推荐看官方那本书的英文原版 + async book + nomicon 这几本书的组合,但是现在有了一本更适合中国用户的书籍,那就是 [<<Rust 语言圣经>>](https://github.com/sunface/rust-course),内容好坏大家一读即知,光就文字而言,那绝对是行云流水般的阅读体验,可以极大提升你的学习效率,也不再因为反复读也读不懂一句话而烦闷不堪。
|
|
|
|
|
在以前我可能会推荐看官方那本书的英文原版 + async book + nomicon 这几本书的组合,但是现在有了一本更适合中国用户的书籍,那就是...你们猜,内容好坏大家一读即知,光就文字而言,那绝对是行云流水般的阅读体验,可以极大提升你的学习效率,也不再因为反复读也读不懂一句话而烦闷不堪。
|
|
|
|
|
|
|
|
|
|
## 千万别从链表或图开始练手
|
|
|
|
|
|
|
|
|
|
CS(Computer Science:计算机科学)课程中我们会学习大量的常用数据结构和算法,因此大家都养成了一种好习惯:学习一门新语言,先用它写个链表或图试试。
|
|
|
|
|
CS(Computer Science:计算机科学)课程中咱们会学习大量的常用数据结构和算法,因此大家都养成了一种好习惯:学习一门新语言,先用它写个链表或图试试。
|
|
|
|
|
|
|
|
|
|
我的天,在 Rust 中**千万别这么干**,你是在扼杀自己之前的努力!因为不像其它语言,链表在 Rust 中简直是地狱一般的难度,我见过太多英雄好汉难过链表关,最终黯然退幕。我不希望正在阅读此文的你也成为其中一个 :(
|
|
|
|
|
|
|
|
|
|
这些自引用类型的数据结构(包含了字段,该字段又引用了自身),它们是恶魔,它们不仅仅在蹂躏着新手,还在折磨着老手,有意思的是,它们的难恰恰是 Rust 的优点导致的:无 GC 也无手动内存管理,内存安全。
|
|
|
|
|
这些自引用类型(一种数据结构,它包含的某个字段又引用了其自身),它们堪称恶魔:不仅仅在蹂躏着新手,还在折磨着老手。有意思的是,它们的难恰恰是 Rust 的优点导致的:无 GC 也无手动内存管理,内存安全。
|
|
|
|
|
|
|
|
|
|
这两点的实现并不是凭空产生的,而是通过 Rust 一套非常强大、优美的机制提供了支持,这些机制一旦你学到,就会被它巧妙的构思和设计而征服,进而被 Rust 深深吸引!但是一切选择都有利弊,这种机制的弊端就在于实现链表这种数据结构时,会变得非常非常复杂。
|
|
|
|
|
|
|
|
|
|
你需要糅合各种知识,才能解决这个问题,但是这显然不是一个新手应该独自去面对的。总之,不会链表对于 Rust 的学习和写项目,真的没有任何影响,直接使用大神已经写好的数据结构包就可以。
|
|
|
|
|
|
|
|
|
|
如果想要练手,我们可以换个方向开始,当然如果你就是喜欢征服困难,那没问题,就从链表开始。但是无论选择哪个,之前提到的那本书都会给你莫大的帮助,包括如何实现一个链表!
|
|
|
|
|
如果想要练手,我们可以换个方向开始,当然如果你就是喜欢征服困难,那没问题,就从链表开始。但是无论选择哪个,本书都将给你莫大的帮助,包括如何实现一个链表!
|
|
|
|
|
|
|
|
|
|
## 仔细阅读编译错误
|
|
|
|
|
|
|
|
|
|
在一些编程语言中,你可能习惯了编译器给出的错误只要看前面(或后面)几行就行,大部分是不怎么用到的信息,总之编译器总感觉笨笨的。
|
|
|
|
|
在一些编程语言中,你可能习惯了编译器给出的错误只看前面(或后面)几行就行,大部分是不怎么用到的信息,总之 `how stupid the 编译器 is`。
|
|
|
|
|
|
|
|
|
|
但是 Rust 不是,它为我们提供了一个强大无比的编译器,而且会提示我们该如何修改代码以解决错误,简直就是一个优秀的老师!
|
|
|
|
|
但是 Rust 不是,它为我们提供了一个强大无比的编译器,而且会提示我们该如何修改代码以解决错误,简直就是一名优秀的老师!
|
|
|
|
|
|
|
|
|
|
因此在使用 Rust 过程中,如果错误你不知该如何解决,不妨仔细阅读下编译器或者 IDE 给出的错误提示,绝大多数时候,你都可以通过这些提示顺利的解决问题。
|
|
|
|
|
|
|
|
|
@ -64,5 +64,5 @@ CS(Computer Science:计算机科学)课程中我们会学习大量的常
|
|
|
|
|
|
|
|
|
|
对于新手而言,最应该避免的就是从**链表开始练手**,最应该做的就是认真仔细地学习一本优秀的书。
|
|
|
|
|
|
|
|
|
|
总之,认真学 Rust,既然选择了,就相信自己,你的前方会是星辰大海!
|
|
|
|
|
总之,认真学 Rust,既然选择了,就**相信自己,你的前方会是星辰大海!**
|
|
|
|
|
|
|
|
|
|