《深入浅出Rust》-范长春 pdf,txt,epub,azw3,mobi格式Kindle电子书免费下载-ebook22
<legend id='EBOOK'><style id='EBOOK'><dir id='EBOOK'><q id='EBOOK'></q></dir></style></legend>
    • <bdo id='EBOOK'></bdo><ul id='EBOOK'></ul>

  1. <small id='EBOOK'></small><noframes id='EBOOK'>

      <i id='EBOOK'><tr id='EBOOK'><dt id='EBOOK'><q id='EBOOK'><span id='EBOOK'><b id='EBOOK'><form id='EBOOK'><ins id='EBOOK'></ins><ul id='EBOOK'></ul><sub id='EBOOK'></sub></form><legend id='EBOOK'></legend><bdo id='EBOOK'><pre id='EBOOK'><center id='EBOOK'></center></pre></bdo></b><th id='EBOOK'></th></span></q></dt></tr></i><div id='EBOOK'><tfoot id='EBOOK'></tfoot><dl id='EBOOK'><fieldset id='EBOOK'></fieldset></dl></div>

      <tfoot id='EBOOK'></tfoot>

    1. ebook22电子书网,免费提供pdf,txt,epub,azw3,mobi格式Kindle电子书下载

      《深入浅出Rust》

      互联网ebook22 2019-10-08 15:30:47A+A-

      深入浅出Rustebook书名:深入浅出Rust

      作者:范长春 

      出版社:机械工业出版社

      出版年:2018年

      页数:403

      格式:ebook

      ISBN:9787111606420

      内容简介:

          本书详细描述了Rust语言的基本语法,穿插讲解一部分高级使用技巧,并以更容易理解的方式解释其背后的设计思想。全书总共分五个部分。

      第一部分介绍Rust基本语法,因为对任何程序设计语言来说,语法都是基础,学习这部分是理解其他部分的前提。

      第二部分介绍属于Rust独一无二的内存管理方式。它设计了一组全新的机制,既保证了安全性,又保持了强大的内存布局控制力,而且没有额外性能损失。这部分是本书的重点和核心所在,也是Rust语言的思想内核精髓之处。

      第三部分介绍Rust的抽象表达能力。它支持多种编程范式,以及较为强大的抽象表达能力。

      第四部分介绍并发模型。在目前这个阶段,对并行编程的支持是新一代编程语言不可绕过的重要话题。Rust也吸收了业界最新的发展成果,对并发有良好支持。

      第五部分介绍一些实用设施。Rust语言有许多创新,但它绝不是高高在上孤芳自赏的类型,设计者在设计过程中充分考虑了语言的工程实用性。众多在其他语言中被证明过的优秀实践被吸收了进来,有利于提升实际工作效率。

      通过此书,读者能够深入透彻地理解Rust的高阶特性,比如代数类型系统、生命周期、借用检查、内部可变性、线程安全、泛型、闭包、迭代器、生成器等。可作为参考书供学生、软件工程师、研究人员以及其他对Rust语言感兴趣的读者参考。本书所揭示的Rust编程语言的设计思想对于理解其他系统编程语言,如C++,也非常有帮助。




      作者简介:

      范长春,中国科学院自动化研究所博士,Rust开源项目贡献者,前微软员工。目前就职于synopsys公司参与源代码静态检查工具coverity软件的开发工作。喜欢研究编译器以及源代码静态检查。在网上撰写了大量关于Rust语言的技术文章,得到了不错的反响。



      目录:


      前言
      第一部分 基础知识
      第1章 与君初相见 2
      1.1 版本和发布策略 2
      1.2 安装开发环境 4
      1.3 Hello World 7
      1.4 Prelude 8
      1.5 Format格式详细说明 8
      第2章 变量和类型 10
      2.1 变量声明 10
      2.1.1 变量遮蔽 12
      2.1.2 类型推导 13
      2.1.3 类型别名 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
      第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
      第4章 函数 44
      4.1 简介 44
      4.2 发散函数 46
      4.3 main函数 47
      4.4 const fn 48
      4.5 函数递归调用 49
      第5章 trait 50
      5.1 成员方法 50
      5.2 静态方法 53
      5.3 扩展方法 55
      5.4 完整函数调用语法 56
      5.5 trait约束和继承 58
      5.6 Derive 59
      5.7 trait别名 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
      第6章 数组和字符串 66
      6.1 数组 66
      6.1.1 内置方法 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
      第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
      第8章 深入类型系统 91
      8.1 代数类型系统 91
      8.2 Never Type 94
      8.3 再谈Option类型 97
      第9章 宏 102
      9.1 简介macro 102
      9.1.1 实现编译阶段检查 102
      9.1.2 实现编译期计算 103
      9.1.3 实现自动代码生成 103
      9.1.4 实现语法扩展 103
      9.2 示范型宏 103
      9.3 宏1.1 105
      第二部分 内存安全
      第10章 内存管理基础 110
      10.1 堆和栈 110
      10.2 段错误 111
      10.3 内存安全 112
      第11章 所有权和移动语义 114
      11.1 什么是所有权 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 主动析构 126
      11.6.3 Drop VS. Copy 129
      11.6.4 析构标记 129
      第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
      第13章 借用检查 141
      13.1 编译错误示例 142
      13.2 内存不安全示例:修改枚举 143
      13.3 内存不安全示例:迭代器
      失效 144
      13.4 内存不安全示例:悬空指针 146
      13.5 小结 148
      第14章 NLL(Non-Lexical-
      Lifetime) 150
      14.1 NLL希望解决的问题 150
      14.2 NLL的原理 154
      14.3 小结 157
      第15章 内部可变性 158
      15.1 Cell 158
      15.2 RefCell 161
      15.3 UnsafeCell 164
      第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
      第17章 泄漏 181
      17.1 内存泄漏 181
      17.2 内存泄漏属于内存安全 184
      17.3 析构函数泄漏 185
      第18章 Panic 190
      18.1 什么是panic 190
      18.2 Panic实现机制 191
      18.3 Panic Safety 192
      18.4 小结 197
      第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
      第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
      第三部分 高级抽象
      第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
      第22章 闭包 252
      22.1 变量捕获 254
      22.2 move关键字 256
      22.3 Fn/FnMut/FnOnce 257
      22.4 闭包与泛型 259
      22.5 闭包与生命周期 261
      第23章 动态分派和静态分派 264
      23.1 trait object 265
      23.2 object safe 268
      23.3 impl trait 271
      第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
      第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
      第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
      第四部分 线程安全
      第27章 线程安全 314
      27.1 什么是线程 314
      27.2 启动线程 316
      27.3 免数据竞争 317
      27.4 Send & Sync 320
      第28章 详解Send和Sync 321
      28.1 什么是Send 321
      28.2 什么是Sync 322
      28.3 自动推理 323
      28.4 小结 324
      第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
      第30章 管道 339
      30.1 异步管道 339
      30.2 同步管道 341
      第31章 第三方并行开发库 343
      31.1 threadpool 343
      31.2 scoped-threadpool 344
      31.3 parking_lot 345
      31.4 crossbeam 345
      31.5 rayon 346
      第五部分 实用设施
      第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
      第33章 错误处理 364
      33.1 基本错误处理 364
      33.2 组合错误类型 366
      33.3 问号运算符 367
      33.4 main函数中使用问号运算符 372
      33.5 新的Failure库 373
      第34章 FFI 375
      34.1 什么是FFI 375
      34.2 从C调用Rust库 376
      34.3 从Rust调用C库 378
      34.4 更复杂的数据类型 378
      第35章 文档和测试 381
      35.1 文档 381
      35.2 测试 382
      附录 词汇表 387
      点击这里复制本文地址 本站电子书内容均来自网络ebook22电子书网整理呈现,版权归原作者和出版社所有.
      ebook资源:深入浅出Rust
      • 如何有效整理信息

        《如何有效整理信息》电子书免费下载

        《如何有效整理信息》本书介绍了在日常生活中使用笔记本搜集和整理信息的方法。只需遵循简单的三条规则——一元化、时序化和索引化,便可以自由地玩转笔记本,酝酿只属于自己的创意。作者将笔记促进创意生成的过程分为收集、咀嚼、发酵、顿悟和具体化五个步骤...

        01月01日[生活]

      • 第二次机器革命

        《第二次机器革命》电子书免费下载

        “一本非常鼓舞人心的书!”——托马斯•L•弗里德曼 《世界是平的》作者 一场革命开始了! 在《第二次机器革命》这本书中,埃里克•布莱恩约弗森和安德鲁•麦卡菲——这两位处于数字技术时代最前沿的思想家,向我们阐述了驱动我们经济和生活的发生变革的力量...

        01月01日[科技]

      • 被嫌弃的松子的一生

        《被嫌弃的松子的一生》电子书免费下载

        在东京尽情享受大学生活的川尻笙,某天父亲突然到访,告知他30多年前失踪的松子姑姑最近在东京被人杀害了。负责整理姑姑遗物的笙,开始调查松子的一生。从中学教师到风俗女郎,松子一生都在追寻名为爱之物,被家人驱赶,遭情人抛弃,被命运百般羞辱,却始终对...

        01月01日[文学]

      • 万物皆数

        《万物皆数》电子书免费下载

        你观察过鹦鹉螺的外壳吗?注意过松果表面的螺纹吗?侦探剧中确定嫌疑人位置的三角定位是什么原理?阿尔法狗的算法与数学有哪些关联? 在史前时代,数学是为了实际应用而出现的。数字被用来计算羊群的数量,几何图形被用来测量田地并绘制道路。自那时以来,很...

        01月01日[科技]

      • 把妹达人圣经

        《把妹达人圣经》电子书免费下载

        《把妹达人圣经》什么学问可以让美国大学生争相投入研究,让医生中途转业,让社交名流趋之若鹜?是的,就是把妹学!享誉全球的把妹达人——尼尔•施特劳斯将历经四年的把妹经验浓缩为30天的改造计划,推出让你终生受益的《把妹达人圣经》。他独创的把妹技巧和...

        01月01日[生活]

      ebook22电子书网 © All Rights Reserved.
      全部书籍 网站地图
      声明:本站所有内容皆由ebook22电子书网(www.ebook22.com)自网络收集整理,版权归原作者和出版社所有.