0%

模式是 Rust 中一种用来匹配类型结构的特殊语法,将模式与 match 表达式或其他工具配合使用可以更好地控制程序流程。模式被用来与某个特定的值进行匹配。如果模式与值匹配成功,那么就可以在代码中使用这个值的某些部分。这篇文章将学习所有可以使用模式匹配的场景、不可失败模式与可失败模式之间的区别,以及代码中可能会出现的各种模式匹配语法。

阅读全文 »

安全且高效地处理并发编程是 Rust 的另一个主要目标。借助所有权和类型检查,许多并发问题可以在 Rust 中暴露为编译时错误而不是运行时错误。Rust 的这一特性称为 无畏并发(fearless concurrency),无畏并发让你编写出没有诡异缺陷的代码,并且易于重构而不会引入新的缺陷。

阅读全文 »

指针是一个通用的概念,它指代那些包含内存地址的变量。Rust 中最常用的指针就是之前介绍过的 引用。引用是用 & 符号表示的,会借用它所指向的值。引用除了指向数据之外没有任何其他功能,也没有任何开销,它是 Rust 中最常见的指针。而智能指针(smart pointer)则是一些数据结构,它们的行为类似于指针但是拥有额外的元数据和附件功能。Rust 标准库中不同的智能指针提供了比引用更为强大的功能。

阅读全文 »

Rust 在设计过程中从许多现有语言和技术中获得启发,函数式编程 理念就是其中之一,它对 Rust 产生了非常显著的影响。常见的函数式风格编程中包括:将函数当做参数、将函数作为其他函数的返回值、将函数赋值给变量等等。闭包和迭代器是 Rust 受函数式编程语言启发而实现的功能,它们帮助 Rust 在清晰地表达出高层次抽象概念的同时兼顾底层性能。

阅读全文 »

泛型是指具体类型或其他属性的抽象替代。在编写代码时,可以直接描述泛型的行为,或者它与其他泛型产生的联系,而无须知晓它在编译和运行代码时采用的具体类型。在定义泛型时,使用 trait 可以将其限制为拥有某些行为的类型,而不是任意类型。生命周期可以向编译器提供引用之间的相互关系,它允许我们在借用值时通过编译器来确保这些引用的有效性。

阅读全文 »

为了应对软件中那些几乎无法避免的错误,Rust 提供了许多特性来处理这类出了问题的场景。在大部分情况下,Rust 会迫使你意识到可能出现错误的地方,并在编译阶段确保它们得到妥善的处理。在 Rust 中,将错误分为两类:可恢复错误不可恢复错误

阅读全文 »