本文概述
- 1.零成本抽象
- 2.错误讯息
- 3.类型推断
- 4.移动语义
- 5.没有数据争用的线程
- 6.模式匹配
- 7.保证的内存安全
- 8.高效的C绑定
- 9.安全的内存空间分配
文章图片
- 零成本抽象
- 错误讯息
- 移动语义
- 没有数据争用的线程
- 模式匹配
- 保证内存安全
- 高效的C绑定
- 安全的内存空间分配
- 最短时间
2.错误讯息 与GCC相比, 在C ++编程中, 错误消息有了极大的改进。为了清楚起见, Rust进一步走了一步。错误消息以(格式, 颜色)显示, 并在我们的程序中建议拼写错误。
3.类型推断 Rust提供了类型推断的功能, 这意味着它可以自动确定表达式的类型。
4.移动语义 Rust提供了此功能, 当源对象是临时对象时, 允许将复制操作替换为移动操作。
5.没有数据争用的线程 数据争用是两个或多个线程访问同一内存位置时的条件。由于所有权系统, Rust提供了没有数据争用的线程功能。所有权系统仅将不同对象的所有者传输到不同的线程, 并且两个线程永远不能拥有具有写访问权的相同变量。
6.模式匹配 Rust提供了模式匹配功能。在模式匹配中, Rust中的模式与” match” 表达式结合使用, 可以更好地控制程序的控制流程。以下是一些模式的组合:
- 字面量
- 数组, 枚举, 结构或元组
- 变数
- 通配符
- 占位符
8.高效的C绑定 Rust提供了” 高效的C绑定” 功能, 这意味着Rust语言在与自己对话时可以与C语言进行互操作。 Rust提供了一个” 外部函数接口” 来与C API进行通信, 并利用其所有权系统来同时保证内存安全。
9.安全的内存空间分配 在Rust中, 内存管理是手动的, 即程序员可以明确控制内存的分配位置和时间。在C语言中, 我们使用malloc函数分配内存, 然后对其进行初始化, 但是Rust通过单个” ?” 运算符拒绝了这两个操作。该运算符将智能指针返回给int。智能指针是一种特殊的值, 它控制何时释放对象。智能指针是” 智能” 的, 因为它们不仅跟踪对象在哪里, 而且知道如何清理对象。
推荐阅读
- Rust for循环语句用法解释
- 第一个Rust程序示例图解
- runtime|【4.12技术直播】WebAssembly 从浏览器到服务端,一套代码走遍天下|了不起的开发者
- runtime|WasmEdge 0.9.1 发布(更佳 networking 支持与开发者体验、安卓支持)
- WebAssembly|WebAssembly 用在了哪里(18个激动人心的 Wasm 初创公司)
- rust|rust打印自定义对象