本文概述
Rust是一种系统编程语言。 Rust提供以下功能:
- 零成本抽象
- 错误讯息
- 移动语义
- 没有数据争用的线程
- 模式匹配
- 保证内存安全
- 高效的C绑定
- 安全的内存空间分配
- 最短时间
1.零成本抽象
在Rust中, 我们可以添加抽象而不影响代码的运行时性能。它提高了代码质量和代码的可读性, 而没有任何运行时性能成本。
2.错误讯息
与GCC相比, 在C ++编程中, 错误消息有了极大的改进。为了清楚起见, Rust进一步走了一步。错误消息以(格式, 颜色)显示, 并在我们的程序中建议拼写错误。
3.类型推断
Rust提供了类型推断的功能, 这意味着它可以自动确定表达式的类型。
4.移动语义
Rust提供了此功能, 当源对象是临时对象时, 允许将复制操作替换为移动操作。
5.没有数据争用的线程
数据争用是两个或多个线程访问同一内存位置时的条件。由于所有权系统, Rust提供了没有数据争用的线程功能。所有权系统仅将不同对象的所有者传输到不同的线程, 并且两个线程永远不能拥有具有写访问权的相同变量。
6.模式匹配
Rust提供了模式匹配功能。在模式匹配中, Rust中的模式与” match”表达式结合使用, 可以更好地控制程序的控制流程。以下是一些模式的组合:
- 字面量
- 数组, 枚举, 结构或元组
- 变数
- 通配符
- 占位符
7.保证的内存安全
Rust通过使用所有权概念来保证内存安全。所有权是C的内存控制和Java的垃圾回收之间的中间地带。在Rust程序中, 内存空间由变量拥有, 并由其他变量临时借用。这使Rust可以在编译时提供内存安全性, 而无需依赖垃圾回收器。
8.高效的C绑定
Rust提供了”高效的C绑定”功能, 这意味着Rust语言在与自己对话时可以与C语言进行互操作。 Rust提供了一个”外部函数接口”来与C API进行通信, 并利用其所有权系统来同时保证内存安全。
9.安全的内存空间分配
在Rust中, 内存管理是手动的, 即程序员可以明确控制内存的分配位置和时间。在C语言中, 我们使用malloc函数分配内存, 然后对其进行初始化, 但是Rust通过单个”〜”运算符拒绝了这两个操作。该运算符将智能指针返回给int。智能指针是一种特殊的值, 它控制何时释放对象。智能指针是”智能”的, 因为它们不仅跟踪对象在哪里, 而且知道如何清理对象。