全部教程·
Rust语言·
Rust高级编程
[目录]
·
Rust 非安全程序设计
Rust 高级编程
Rust 非安全程序设计
Rust 安全代码
安全与非安全代码对比 安全与非安全代码交互 非安全Rust能做什么 编写非安全代码数据布局
repr(Rust) 类型中的奇行种 可选的数据表达方式所有权
所有权 引用 别名 生命周期 生命周期的局限 省略生命周期 无界生命周期 高阶trait边界 子类型和变性 Drop检查 幽灵数据 分解借用类型转换
类型转换 强制类型转换 点操作符 显式类型转换 变形未初始化内存
未初始化内存 安全方式 Drop标志 非安全方式资源管理
基于所有权的资源管理 构造函数 析构函数 泄露展开
展开 异常安全性 污染并发
并发 竞争 Send和Sync 原子操作实现 Vec
实现 Vec 布局 内存分配 push和pop 回收资源 DeRef 插入和删除 IntoIter RawVec Drain 处理零尺寸类型 最终代码FFI
FFI
Rust 高级编程
Rust 非安全程序设计
Rust 安全代码
安全与非安全代码对比 安全与非安全代码交互 非安全Rust能做什么 编写非安全代码数据布局
repr(Rust) 类型中的奇行种 可选的数据表达方式所有权
所有权 引用 别名 生命周期 生命周期的局限 省略生命周期 无界生命周期 高阶trait边界 子类型和变性 Drop检查 幽灵数据 分解借用类型转换
类型转换 强制类型转换 点操作符 显式类型转换 变形未初始化内存
未初始化内存 安全方式 Drop标志 非安全方式资源管理
基于所有权的资源管理 构造函数 析构函数 泄露展开
展开 异常安全性 污染并发
并发 竞争 Send和Sync 原子操作实现 Vec
实现 Vec 布局 内存分配 push和pop 回收资源 DeRef 插入和删除 IntoIter RawVec Drain 处理零尺寸类型 最终代码FFI
FFIRust 非安全程序设计
本书将深入挖掘和剖析 Rust 非安全(unsafe)编程中的一些必要面对和解决的细节问题。
如果你仍然期待着拥有一个长期且快乐的 Rust 编程生涯,那么现在就转身离开,彻底忘掉你曾经见到过这本书——你并不会感到生活有什么缺憾。但是,如果你计划编写非安全代码,或者仅仅是想探究一下这门语言的内在秘密,那么本书将给你许多有用的信息。
本教程与 《Rust语言教程》 不同,本书假设你具备一定的基础知识。特别是你应该已经熟练掌握了基本的系统编程和 Rust 语言。要是还没有的话,请考虑先读 《Rust语言教程》 这本书。我们并不假设你一定去读了,也会在适当的时候复习一下相关的基础知识。你可以跳过上面那本书直接阅读本书,但要了解我们并不会把每一个知识点都从头讲起。
我们将涉及到异常安全(exception-safety),指针别名(pointer aliasing),内存模型(memory model),编译器和硬件实现的细节,甚至还有一些类型理论(type-theory)。还会大费周章地处理一些原本不该有人关注的边界场景,因为当我们敲出 unsafe 几个字的时候,这些场景一下子就变得特别重要了。
我们还将花费大量时间讨论程序关注的各种不同的安全保证机制。
下一章:Rust 安全与非安全代码对比
安全与非安全代码对比:我们都希望可以彻底屏蔽代码底层实现的细节,又有谁愿意关心“一个空的元组占用多少内存”这种事?可惜的是,有时候这些事却很重要,我们不得不去关注它。开发人员关注实现细节,大部分情况是为了性能优化。但更主要的是,当我们与硬件 ...
AI 中文社