本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
书[0名0]: | 深入浅出Rust|8051164 |
图书定价: | 89元 |
图书作者: | 范长春 |
出版社: | [1机1]械工业出版社 |
出版日期: | 2018/8/17 0:00:00 |
ISBN号: | 9787111606420 |
开本: | 16开 |
页数: | 403 |
版次: | 1-1 |
作者简介 |
范长春 著:范长春(F001),中[0国0]科[0学0]院自动化研究所博士,Rust开源项目贡献者,前微软员工。目前就职于sy[0no0]psys公司参与源代码静态检查工具coverity软[亻牛]的开发工作。喜欢研究编译器以及源代码静态检查。在网上撰写了[0大0]量关于Rust语言的技术文章,得到了不错的反响。 |
内容简介 |
内容简介 本书详细描述了Rust语言的基本语[0法0],穿插讲解一部分高级使用技巧,并以更容易理解的方式解释其背后的设计思想。全书总共分五个部分。 [0第0]一部分介绍Rust基本语[0法0],因为对任何程序设计语言来说,语[0法0]都是基础,[0学0]习这部分是理解其他部分的前[扌是]。 [0第0]二部分介绍属于Rust[0独0]一无二的内存管理方式。它设计了一组全[亲斤]的[1机1]制,既保证了安全性,又保持了强[0大0]的内存布局控制力,而且没有额外性能损失。这部分是本书的重点和核心所在,也是Rust语言的思想内核精髓之处。 [0第0]三部分介绍Rust的抽象表达能力。它支持多种编程范式,以及较为强[0大0]的抽象表达能力。 [0第0]四部分介绍并发模型。在目前这个阶段,对并行编程的支持是[亲斤]一代编程语言不可绕过的重要话题。Rust也吸收了业界[z1u1i][亲斤]的发展成果,对并发有良[女子]支持。 [0第0]五部分介绍一些实用设施。Rust语言有许多创[亲斤],但它[纟色]不是高高在上孤芳自赏的类型,设计者在设计过程中充分考虑了语言的工程实用性。众多在其他语言中被证明过的[0优0]秀实践被吸收了进来,有利于[扌是]升实际工作效率。 通过此书,读者能够深入透彻地理解Rust的高阶特性,比如代数类型系统、生命周期、借用检查、内部可变性、线程安全、泛型、闭包、迭代器、生成器等。可作为参考书供[0学0]生、软[亻牛]工程师、研究人员以及其他对Rust语言感兴趣的读者参考。本书所揭示的Rust编程语言的设计思想对于理解其他系统编程语言,如C++,也非常有帮助。 |
目录 |
前言 [0第0]一部分 基础[0知0]识 [0第0]1章 与君初相见 2 1.1 版本和发布策略 2 1.2 安装开发环境 4 1.3 Hello World 7 1.4 Prelude 8 1.5 Format格式详细说明 8 [0第0]2章 变量和类型 10 2.1 变量声明 10 2.1.1 变量遮蔽 12 2.1.2 类型推导 13 2.1.3 类型别[0名0] 14 2.1.4 静态变量 15 2.1.5 常量 16 2.2 基本数据类型 16 2.2.1 bool 16 2.2.2 char 17 2.2.3 整数类型 17 2.2.4 整数溢出 19 2.2.5 浮点类型 21 2.2.6 指针类型 23 2.2.7 类型转换 23 2.3 复合数据类型 24 2.3.1 tuple 25 2.3.2 struct 25 2.3.3 tuple struct 27 2.3.4 enum 29 2.3.5 类型递归定义 32 [0第0]3章 语句和表达式 34 3.1 语句 34 3.2 表达式 34 3.2.1 运算表达式 35 3.2.2 赋值表达式 37 3.2.3 语句块表达式 38 3.3 if-else 39 3.3.1 loop 40 3.3.2 while 41 3.3.3 for循环 42 [0第0]4章 函数 44 4.1 简介 44 4.2 发散函数 46 4.3 main函数 47 4.4 const fn 48 4.5 函数递归调用 49 [0第0]5章 trait 50 5.1 成员方[0法0] 50 5.2 静态方[0法0] 53 5.3 扩展方[0法0] 55 5.4 完整函数调用语[0法0] 56 5.5 trait约束和继承 58 5.6 Derive 59 5.7 trait别[0名0] 60 5.8 标准库中常见的trait简介 61 5.8.1 Display和Debug 61 5.8.2 PartialOrd / Ord / PartialEq / Eq 62 5.8.3 Sized 63 5.8.4 Default 64 5.9 总结 65 [0第0]6章 数组和字符串 66 6.1 数组 66 6.1.1 内置方[0法0] 67 6.1.2 多维数组 67 6.1.3 数组切片 67 6.1.4 DST和胖指针 68 6.1.5 Range 70 6.1.6 边界检查 72 6.2 字符串 74 6.2.1 &str 74 6.2.2 String 75 [0第0]7章 模式解构 77 7.1 简介 77 7.2 match 78 7.2.1 exhaustive 79 7.2.2 下划线 80 7.2.3 match也是表达式 82 7.2.4 Guards 83 7.2.5 变量绑定 84 7.2.6 ref和mut 85 7.3 if-let和while-let 88 7.4 函数和闭包参数做模式解构 89 7.5 总结 90 [0第0]8章 深入类型系统 91 8.1 代数类型系统 91 8.2 Never Type 94 8.3 再谈Option类型 97 [0第0]9章 宏 102 9.1 简介macro 102 9.1.1 实现编译阶段检查 102 9.1.2 实现编译期计算 103 9.1.3 实现自动代码生成 103 9.1.4 实现语[0法0]扩展 103 9.2 示范型宏 103 9.3 宏1.1 105 [0第0]二部分 内存安全 [0第0]10章 内存管理基础 110 10.1 堆和栈 110 10.2 段错误 111 10.3 内存安全 112 [0第0]11章 所有[0[0权0]0]和移动语义 114 11.1 什么是所有[0[0权0]0] 114 11.2 移动语义 116 11.3 复制语义 118 11.4 Box类型 120 11.5 Clone VS. Copy 121 11.5.1 Copy的含义 121 11.5.2 Copy 的实现条[亻牛] 121 11.5.3 Clone的含义 122 11.5.4 自动derive 123 11.5.5 总结 123 11.6 析构函数 124 11.6.1 资源管理 125 11.6.2 [1主1]动析构 126 11.6.3 Drop VS. Copy 129 11.6.4 析构标记 129 [0第0]12章 借用和生命周期 132 12.1 生命周期 132 12.2 借用 132 12.3 借用规则 134 12.4 生命周期标记 136 12.4.1 函数的生命周期标记 136 12.4.2 类型的生命周期标记 138 12.5 省略生命周期标记 139 [0第0]13章 借用检查 141 13.1 编译错误示例 142 13.2 内存不安全示例:修改枚举 143 13.3 内存不安全示例:迭代器 失效 144 13.4 内存不安全示例:悬空指针 146 13.5 小结 148 [0第0]14章 NLL([0No0]n-Lexical- Lifetime) 150 14.1 NLL希望解决的问题 150 14.2 NLL的原理 154 14.3 小结 157 [0第0]15章 内部可变性 158 15.1 Cell 158 15.2 RefCell 161 15.3 UnsafeCell 164 [0第0]16章 解引用 169 16.1 自定义解引用 169 16.2 自动解引用 171 16.3 自动解引用的用处 171 16.4 有时候需要手动处理 173 16.5 智能指针 175 16.5.1 引用计数 175 16.5.2 Cow 178 16.6 小结 180 [0第0]17章 泄漏 181 17.1 内存泄漏 181 17.2 内存泄漏属于内存安全 184 17.3 析构函数泄漏 185 [0第0]18章 Panic 190 18.1 什么是panic 190 18.2 Panic实现[1机1]制 191 18.3 Panic Safety 192 18.4 小结 197 [0第0]19章 Unsafe 198 19.1 unsafe关键字 198 19.2 裸指针 199 19.3 内置函数 201 19.3.1 transmute 201 19.3.2 内存读写 202 19.3.3 综合示例 204 19.4 分割借用 206 19.5 协变 209 19.5.1 什么是协变 209 19.5.2 PhantomData 211 19.6 未定义行为 214 19.7 小结 215 [0第0]20章 Vec源码分析 216 20.1 内存申请 217 20.2 内存扩容 220 20.3 内存释放 222 20.3.1 Vec的析构函数 222 20.3.2 Drop Check 223 20.4 不安全的边界 226 20.5 自定义解引用 227 20.6 迭代器 228 20.7 panic safety 231 [0第0]三部分 高级抽象 [0第0]21章 泛型 234 21.1 数据结构中的泛型 234 21.2 函数中的泛型 235 21.3 impl块中的泛型 237 21.4 泛型参数约束 237 21.5 关联类型 241 21.6 何时使用关联类型 244 21.7 泛型特化 246 21.7.1 特化的意义 247 21.7.2 default上下文关键字 248 21.7.3 交叉 impl 250 [0第0]22章 闭包 252 22.1 变量捕获 254 22.2 move关键字 256 22.3 Fn/FnMut/FnOnce 257 22.4 闭包与泛型 259 22.5 闭包与生命周期 261 [0第0]23章 动态分派和静态分派 264 23.1 trait object 265 23.2 object safe 268 23.3 impl trait 271 [0第0]24章 容器与迭代器 275 24.1 容器 275 24.1.1 Vec 275 24.1.2 VecDeque 277 24.1.3 HashMap 277 24.1.4 BTreeMap 281 24.2 迭代器 283 24.2.1 实现迭代器 283 24.2.2 迭代器的组合 284 24.2.3 for循环 285 [0第0]25章 生成器 289 25.1 简介 289 25.2 对比迭代器 291 25.3 对比立即求值 292 25.4 生成器的原理 293 25.4.1 生成器原理简介 293 25.4.2 自引用类型 297 25.5 协程简介 298 [0第0]26章 标准库简介 302 26.1 类型转换 302 26.1.1 AsRef / AsMut 302 26.1.2 Borrow / BorrowMut 303 26.1.3 From / Into 304 26.1.4 ToOwned 305 26.1.5 ToString / FromStr 305 26.2 运算符重载 306 26.3 I/O 308 26.3.1 平台相关字符串 308 26.3.2 文[亻牛]和路径 309 26.3.3 标准输入输出 310 26.3.4 进程启动参数 311 26.4 Any 311 [0第0]四部分 线程安全 [0第0]27章 线程安全 314 27.1 什么是线程 314 27.2 启动线程 316 27.3 免数据竞争 317 27.4 Send & Sync 320 [0第0]28章 详解Send和Sync 321 28.1 什么是Send 321 28.2 什么是Sync 322 28.3 自动推理 323 28.4 小结 324 [0第0]29章 状态共享 325 29.1 Arc 325 29.2 Mutex 326 29.3 RwLock 328 29.4 Atomic 329 29.5 死锁 331 29.6 Barrier 333 29.7 Condvar 334 29.8 全局变量 335 29.9 线程局部存储 336 29.10 总结 337 [0第0]30章 管道 339 30.1 异步管道 339 30.2 同步管道 341 [0第0]31章 [0第0]三方并行开发库 343 31.1 threadpool 343 31.2 scoped-threadpool 344 31.3 parking_lot 345 31.4 crossbeam 345 31.5 rayon 346 [0第0]五部分 实用设施 [0第0]32章 项目和模块 350 32.1 cargo 350 32.2 项目依赖 353 32.2.1 配置 355 32.2.2 workspace 355 32.2.3 build.rs 356 32.3 模块管理 358 32.3.1 文[亻牛]组织 358 32.3.2 可见性 360 32.3.3 use关键字 362 [0第0]33章 错误处理 364 33.1 基本错误处理 364 33.2 组合错误类型 366 33.3 问号运算符 367 33.4 main函数中使用问号运算符 372 33.5 [亲斤]的Failure库 373 [0第0]34章 FFI 375 34.1 什么是FFI 375 34.2 从C调用Rust库 376 34.3 从Rust调用C库 378 34.4 更复杂的数据类型 378 [0第0]35章 文档和测试 381 35.1 文档 381 35.2 测试 382 附录 词汇表 387 |
编辑推荐 |
本书使用通俗易懂的语言,辅以[0大0]量的代码示例,高屋建瓴地总结阐释了Rust的[1主1]要概念以及使用方[0法0],并对背后的设计思路和原理做了深入浅出的剖析,全[mian]深入地[扌是]炼了Rust的设计精华。 |