0 0 0

Rust 编程之道

走自己的路让你无路可走
2天前 110
我用夸克网盘分享了「Rust 编程之道 by 张汉东.pdf」,点击链接即可保存。打开「夸克APP」在线查看,支持多种文档格式转换。
Rust编程之道 作者: 张汉东 出版社: 电子工业出版社 出品方: 博文视点 出版年: 2019-1 页数: 580 定价: 128 装帧: 平装 ISBN: 9787121354854

内容简介

Rust 是一门利用现代化的类型系统,有机地融合了内存管理、所有权语义和混合编程范式的编程语言。它不仅能科学地保证程序的正确性,还能保证内存安全和线程安全。同时,还有能与C/C++语言媲美的性能,以及能和动态语言媲美的开发效率。 《Rust编程之道》并非对语法内容进行简单罗列讲解,而是从四个维度深入全面且通透地介绍了Rust 语言。从设计哲学出发,探索Rust 语言的内在一致性;从源码分析入手,探索Rust 地道的编程风格;从工程角度着手,探索Rust 对健壮性的支持;从底层原理开始,探索Rust 内存安全的本质。 《Rust编程之道》涵盖了Rust 2018 的特性,适合有一定编程经验且想要学习Rust 的初学者,以及对Rust 有一定的了解,想要继续深入学习的进阶者。

作者简介

张汉东,80后,资深软件工程师、企业独立咨询师、技术作者译者。爱好读书、写作,喜欢研究技术、学习之道,以及心智和认知开发模式。曾在互联网行业沉浮十余载,先后效力于电商、社交游戏、广告和众筹领域。作为企业独立咨询师,先后为思科、平安科技和闪迪等公司提供咨询服务。目前在心智教育及创客领域开疆拓土。是《Ruby原理剖析》一书的译者。喜欢Rust语言,为Rust语言提交了三次编译器Bug,并协助修复其中之一。为官方Rust 2018 Guide做过贡献,并数次提出改进意见。参与了国内Rust社区的管理和运营,在2018年打造了《Rust每日新闻》频道,深受Rustacean们的喜爱。为初学者精心打造了Rust必学第一课:知乎Live《如何系统地学习Rust语言》,获得五星好评。

网友热评

加图索: 首先,这不是一本入门rust的书,适合对rust语法已经有一定了解的人读。作者太想推销rust了,以至于书中一小部分内容读来让人尴尬。并且由于这本书并不面向初学者,书中有一些比喻、类比的行文方式个人觉得不必要。总体来说是一本挺不错的书,简洁但能抓到重点,若是能把前面的两个缺点改掉会更好。 Zoom.Quiet: 是也乎 ╮(╯▽╰)╭ 应该改名 --> Rust 源代码鉴赏 老张这书其实就是用 rust 自身代码来阐述 rust 各种语言设计动机~原理~概念… 只有4.2%不到的篇幅来说应该在具体场景中乍用~ 可以说~想在超大型分布式系统中~对性能~安全性要求异常苛刻 场景中~最靠谱的参考书~ 却不是最合适的入门书~ 但~也证明~Rust 是 Golang 之后大陆程序猿唯二真正进入社区内圈的技术桟~ Rust 是唯一同时达成三原则的现代语言: 安全 并可维护 且高效~ 你 --> 值得拥有

图书目录

第1章新时代的语言1 1.1缘起1 1.2设计哲学3 1.2.1内存安全3 1.2.2零成本抽象4 1.2.3实用性5 1.3现状与未来7 1.3.1语言架构8 1.3.2开源社区9 1.3.3发展前景9 1.4Rust代码如何执行10 1.5小结10 第2章语言精要11 2.1Rust语言的基本构成11 2.1.1语言规范11 2.1.2编译器12 2.1.3核心库12 2.1.4标准库12 2.1.5包管理器13 2.2语句与表达式13 2.3变量与绑定14 2.3.1位置表达式和值表达式15 2.3.2不可变绑定与可变绑定15 2.3.3所有权与引用16 2.4函数与闭包17 2.4.1函数定义17 2.4.2作用域与生命周期18 2.4.3函数指针19 2.4.5CTFE机制20 2.4.6闭包20 2.5流程控制22 2.5.1条件表达式22 2.5.2循环表达式23 2.5.3match表达式与模式匹配24 2.5.4iflet和whilelet表达式25 2.6基本数据类型26 2.6.1布尔类型26 2.6.2基本数字类型26 2.6.3字符类型27 2.6.4数组类型28 2.6.5范围类型29 2.6.6切片类型29 2.6.7str字符串类型30 2.6.8原生指针31 2.6.9never类型31 2.7复合数据类型32 2.7.1元组32 2.7.2结构体33 2.7.3枚举体36 2.8常用集合类型38 2.8.1线性序列:向量38 2.8.2线性序列:双端队列39 2.8.3线性序列:链表40 2.8.4Key-Value映射表:HashMap和BTreeMap40 2.8.5集合:HashSet和BTreeSet41 2.8.6优先队列:BinaryHeap42 2.9智能指针42 2.10泛型和trait43 2.10.1泛型43 2.10.2trait44 2.11错误处理47 2.12表达式优先级48 2.13注释与打印48 2.14小结50 第3章类型系统51 3.1通用概念51 3.1.1类型系统的作用51 3.1.2类型系统的分类52 3.1.3类型系统与多态性53 3.2Rust类型系统概述53 3.2.1类型大小53 3.2.2类型推导58 3.3泛型60 3.3.1泛型函数60 3.3.2泛型返回值自动推导62 3.4深入trait62 3.4.1接口抽象63 3.4.2泛型约束69 3.4.3抽象类型71 3.4.4标签trait77 3.5类型转换83 3.5.1Deref解引用83 3.5.2as操作符86 3.5.3From和Into88 3.6当前trait系统的不足89 3.6.1孤儿规则的局限性90 3.6.2代码复用的效率不高91 3.6.3抽象表达能力有待改进93 3.7小结94 第4章内存管理95 4.1通用概念95 4.1.1栈96 4.1.2堆99 4.1.3内存布局101 4.2Rust中的资源管理103 4.2.1变量和函数103 4.2.2智能指针与RAII106 4.2.3内存泄漏与内存安全110 4.2.4复合类型的内存分配和布局115 4.3小结117 第5章所有权系统119 5.1通用概念120 5.2所有权机制123 5.3绑定、作用域和生命周期125 5.3.1不可变与可变126 5.3.2绑定的时间属性——生命周期127 5.4所有权借用131 5.5生命周期参数135 5.5.1显式生命周期参数136 5.5.2省略生命周期参数143 5.5.3生命周期限定145 5.5.4trait对象的生命周期145 5.6智能指针与所有权146 5.6.1共享所有权Rc和Weak149 5.6.2内部可变性Cell和RefCell151 5.6.3写时复制Cow153 5.7并发安全与所有权156 5.8非词法作用域生命周期157 5.9小结161 第6章函数、闭包与迭代器162 6.1函数162 6.1.1函数屏蔽164 6.1.2函数参数模式匹配164 6.1.3函数返回值165 6.1.4泛型函数166 6.1.5方法与函数167 6.1.6高阶函数168 6.2闭包171 6.2.1闭包的基本语法172 6.2.2闭包的实现173 6.2.3闭包与所有权178 6.2.4闭包作为函数参数和返回值184 6.2.5高阶生命周期190 6.3迭代器194 6.3.1外部迭代器和内部迭代器194 6.3.2Iteratortrait195 6.3.3IntoIteratortrait和迭代器199 6.3.4迭代器适配器202 6.3.5消费器207 6.3.6自定义迭代器适配器211 6.4小结214 第7章结构化编程216 7.1面向对象风格编程217 7.1.1结构体217 7.1.2枚举体225 7.1.3析构顺序230 7.2常用设计模式233 7.2.1建造者模式234 7.2.2访问者模式236 7.2.3RAII模式239 7.3小结243 第8章字符串与集合类型244 8.1字符串244 8.1.1字符编码244 8.1.2字符247 8.1.3字符串分类249 8.1.4字符串的两种处理方式251 8.1.5字符串的修改253 8.1.6字符串的查找256 8.1.7与其他类型相互转换265 8.1.8回顾270 8.2集合类型271 8.2.1动态可增长数组271 8.2.2映射集281 8.3理解容量289 8.4小结292 第9章构建健壮的程序294 9.1通用概念294 9.2消除失败295 9.3分层处理错误297 9.3.1可选值Option298 9.3.2错误处理Result302 9.4恐慌(Panic)314 9.5第三方库316 9.6小结319 第10章模块化编程320 10.1包管理321 10.1.1使用Cargo创建包321 10.1.2使用第三方包323 10.1.3Cargo.toml文件格式331 10.1.4自定义Cargo337 10.2模块系统339 10.3从零开始实现一个完整功能包344 10.3.1使用Cargo创建新项目345 10.3.2使用structopt解析命令行参数345 10.3.3定义统一的错误类型347 10.3.4读取CSV文件348 10.3.5替换CSV文件中的内容351 10.3.6进一步完善包353 10.4可见性和私有性358 10.5小结360 第11章安全并发362 11.1通用概念362 11.1.1多进程和多线程363 11.1.2事件驱动、异步回调和协程364 11.1.3线程安全365 11.2多线程并发编程370 11.2.1线程管理371 11.2.2Send和Sync375 11.2.3使用锁进行线程同步379 11.2.4屏障和条件变量384 11.2.5原子类型386 11.2.6使用Channel进行线程间通信388 11.2.7内部可变性探究397 11.2.8线程池399 11.2.9使用Rayon执行并行任务407 11.2.10使用Crossbeam409 11.3异步并发412 11.3.1生成器413 11.3.2Future并发模式418 11.3.3async/await421 11.4数据并行428 11.4.1什么是SIMD429 11.4.2在Rust中使用SIMD430 11.5小结434 第12章元编程435 12.1反射436 12.1.1通过is函数判断类型436 12.1.2转换到具体类型437 12.1.3非静态生命周期类型439 12.2宏系统440 12.2.1起源440 12.2.2Rust中宏的种类441 12.2.3编译过程442 12.2.4声明宏445 12.2.5过程宏458 12.3编译器插件472 12.4小结475 第13章超越安全的边界477 13.1UnsafeRust介绍477 13.1.1Unsafe语法478 13.1.2访问和修改可变静态变量480 13.1.3Union联合体480 13.1.4解引用原生指针483 13.2基于Unsafe进行安全抽象484 13.2.1原生指针484 13.2.2子类型与型变489 13.2.3未绑定生命周期494 13.2.4Drop检查495 13.2.5NonNull指针505 13.2.6Unsafe与恐慌安全508 13.2.7堆内存分配508 13.2.8混合代码内存安全架构三大原则510 13.3和其他语言交互510 13.3.1外部函数接口510 13.3.2与C/C++语言交互514 13.3.3使用Rust提升动态语言性能528 13.4Rust与WebAssembly532 13.4.1WebAssembly要点介绍533 13.4.2使用Rust开发WebAssembly539 13.4.3打造WebAssembly开发生态541 13.5小结543 附录ARust开发环境指南544 附录BRust如何调试代码549

Rust

版权说明

1、本站不保存、不存储任何实质资源,以上二维码指向为网盘资源链接,其内容归对应版权方所有
2、如有侵犯版权的情况,请点击下面举报/反馈按钮反馈或发送邮件[email protected]投诉说明情况
3、我们核实后将第一时间删除相关页面内容,谢谢理解和配合

这些人下载过 (12)
  • 宋冬野
  • Winter.承諾
  • 幻梦逐光
  • 十三点半的kiss
  • 却把我丢在某日某夜某街
  • 星辰大海
  • 抵触心理
  • 一花一树开
  • 逗比的胖儿
  • 近情情怯
  • 故事与月有关
  • 噬心学长
最新回复 (0)

    暂无评论

请先登录后发表评论!

返回
请先登录后发表评论!