rustnotes

这份学习笔记是在学习Rust的过程中的记录,主要基于《Rust程序设计语言-简体中文版》和《RustPrimer》两份开源书籍。

上面两本书籍相对全面,但对部分初学者可能更为深奥一些,尤其是之前没有接触过C/C++ 和Rust语言的读者。在学习过程中我对二份开源书籍进行了适合的整理,又加入了一些自己学习过程中新添加的内容,于是就有了这份学习笔记。这份学习笔记的主要贡献在于涵盖了所有工程上基于Rust进行开发需要掌握的基础知识,并且重新调整了目录结构。

我个人对Rust语言设计的看法主要是:重大创新,却又博采众长。

Rust为了解决内存安全问题重新设计了类型系统,提出了所有权的概念,同时为了能够解决当前大多数语言无法检测到的运行时错误,rust创造性地设计了无畏并发。Rust借鉴了很多优秀语言的设计理念,以及快速迭代的社区,而这些都是Rust受到赞赏的重要因素。

Rust 是一门系统级编程语言,被设计为保证内存和线程安全,并防止段错误。作为系统级编程语言,它的基本理念是 “零开销抽象”。理论上来说,它的速度与 C / C++ 同级。

Rust 可以被归为通用的、多范式、编译型的编程语言,类似 C 或者 C++。与这两门编程语言不同的是,Rust 是线程安全的!

Rust 编程语言的目标是,创建一个高度安全和并发的软件系统。它强调安全性、并发和内存控制。尽管 Rust 借用了 C 和 C++ 的语法,它不允许空指针和悬挂指针,二者是 C 和 C++ 中系统崩溃、内存泄露和不安全代码的根源。

Rust 中有诸如 if else 和循环语句 for 和 while 的通用控制结构。和 C 和 C++ 风格的编程语言一样,代码段放在花括号中。

Rust 使用实现(implementation)、特征(trait)和结构化类型(structured type)而不是类(class)。这点,与基于继承的OO语言 C++, Java 有相当大的差异。而跟 Ocaml, Haskell 这类函数式语言更加接近。

Rust 做到了内存安全而无需 .NET 和 Java 编程语言中实现自动垃圾收集器的开销,这是通过所有权/借用机制、生命周期、以及类型系统来达到的。

Rust 程序设计语言的本质在于赋能(empowerment):无论你现在编写的是何种代码,Rust 能让你在更为广泛的编程领域走得更远,写出自信。 比如,“系统层面”(“systems-level”)的工作,涉及内存管理、数据表示和并发等底层细节。从传统角度来看,这是一个神秘的编程领域,只为浸淫多年的极少数人所触及,也只有他们能避开那些臭名昭著的陷阱。即使谨慎的实践者,亦唯恐代码出现漏洞、崩溃或损坏。

Rust 破除了这些障碍,其消除了旧的陷阱并提供了伴你一路同行的友好、精良的工具。想要 “深入” 底层控制的程序员可以使用 Rust,无需冒着常见的崩溃或安全漏洞的风险,也无需学习时常改变的工具链的最新知识。其语言本身更是被设计为自然而然的引导你编写出在运行速度和内存使用上都十分高效的可靠代码。

参考: