由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
[正版]Rust编程从入门到实战 樊少冰 程序语言计算机科学与技术丛书
¥ ×1
店铺公告
为保障消费者合理购买需求及公平交易机会,避免因非生活消费目的的购买货囤积商品,抬价转售等违法行为发生,店铺有权对异常订单不发货且不进行赔付。异常订单:包括但不限于相同用户ID批量下单,同一用户(指不同用户ID,存在相同/临近/虚构收货地址,或相同联系号码,收件人,同账户付款人等情形的)批量下单(一次性大于5本),以及其他非消费目的的交易订单。
温馨提示:请务必当着快递员面开箱验货,如发现破损,请立即拍照拒收,如验货有问题请及时联系在线客服处理,(如开箱验货时发现破损,所产生运费由我司承担,一经签收即为货物完好,如果您未开箱验货,一切损失就需要由买家承担,所以请买家一定要仔细验货)。
关于退货运费:对于下单后且物流已发货货品在途的状态下,原则上均不接受退货申请,如顾客原因退货需要承担来回运费,如因产品质量问题(非破损问题)可在签收后,联系在线客服。
书名: | Rust编程从入门到实战 |
出版社: | 清华大学出版社 |
出版日期 | 2022 |
ISBN号: | 9787302603849 |
《Rust编程从入门到实战》是一部Rust编程语言的编程手册,第1~3章为Rust前置知识,介绍了开发环境搭建、第一个Rust程序以及语言的输入输出;第4~16章为Rust基础语法知识,介绍了Rust基础的语法和必要的语言使用规则,其中包括Rust所有权、生命周期以及特性等重要语言概念的介绍;第17~27章为Rust实用操作,介绍了文件与I/O、无畏并发、Web编程等重要的经典开发实战以及属性、宏、“不安全”语法等Rust高级编程。 《Rust编程从入门到实战》适合Rust语言初学者学习使用,也可供Rust开发者参考使用,还可作为高等院校相关专业的教材。 |
|
|
Rust致力于成为优雅解决高并发和高安全性系统问题的编程语言,适用于大型场景,它同时拥有着像C++一般出色的运行效率和ECMAScript一般的代码风格。 本书内容翔实、层次分明、逻辑通透,全书采用了大量实例,更易于理解。全书涵盖以下主题:Rust编程语言基础知识、所有权机制、Cargo包管理器、工程组织与访问权、无畏并发、线程通信、“属性”和“宏”、“不安全”语法、Web编程等。 |
|
第1章 Rust编程语言概述 1 1.1 编程语言 1 1.2 Rust语言 2 1.2.1 为什么选择Rust 2 1.2.2 在哪里能使用Rust 2 1.3 Hello, Rust! 3 第2章 开发环境 4 2.1 工具链 4 2.1.1 Windows系统上的安装 4 2.1.2 在GNU/Linux上安装 6 2.1.3 在其他操作系统上安装 7 2.1.4 卸载 7 2.2 集成开发环境 7 2.3 CLion安装与部署 8 2.3.1 下载和安装CLion 8 2.3.2 配置CLion 9 第3章 开发命令行程序 13 3.1 输出到命令行 13 3.2 详细输出 14 3.3 从命令行输入 15 3.4 从命令参数中获取 16 第4章 基础语法 18 4.1 变量 18 4.2 重影 20 4.3 常量 20 4.4 静态变量 21 第5章 Rust数据类型 23 5.1 整数型 23 5.2 浮点数型 24 5.3 数学运算 24 5.3.1 基础运算 24 5.3.2 数学函数 24 5.4 布尔型 25 5.5 逻辑运算 25 5.6 字符型 26 5.7 字符串 27 5.8 元组 28 5.9 数组 29 第6章 注释 31 6.1 常规注释 31 6.2 说明文档注释 31 6.3 生成工程文档 33 第7章 函数 34 7.1 函数的声明 34 7.2 函数语句与函数表达式 35 7.2.1 函数语句与表达式 35 7.2.2 函数返回值 35 7.2.3 函数表达式 36 7.3 函数对象 37 7.4 闭包(Lambda表达式) 37 第8章 条件语句 39 8.1 if-else 语句 39 8.2 三元运算符 40 8.3 match语句——Rust中的switch 41 第9章 循环结构 43 9.1 while循环 43 9.2 for 循环 44 9.3 loop 循环 45 第10章 所有权 47 10.1 内存管理 47 10.1.1 内存的概念 47 10.1.2 主流的内存管理机制 48 10.2 所有权机制 48 10.2.1 变量范围 49 10.2.2 生命周期 49 10.2.3 转移 50 10.2.4 复制 50 10.2.5 引用和借用 51 10.2.6 垂悬引用 51 10.3 与函数相关的所有权 52 10.3.1 参数所有权 52 10.3.2 返回值所有权 53 10.4 引用类型 54 10.4.1 引用的用途 54 10.4.2 可变引用 55 10.4.3 解引用运算符 56 第11章 切片类型 58 11.1 字符串切片 58 11.2 数组切片 59 第12章 复合类型 60 12.1 结构体 60 12.1.1 结构体的定义 60 12.1.2 结构体的实例化 60 12.1.3 结构体所有权 61 12.1.4 结构体方法 64 12.1.5 元组结构体 66 12.1.6 单元结构体 66 12.2 枚举类 66 12.2.1 枚举类的定义 67 12.2.2 枚举类的match语法 68 12.2.3 if-let语法 69 12.2.4 枚举类的方法 70 第13章 泛型 72 13.1 泛型函数 72 13.2 复合类型的泛型 73 13.2.1 泛型结构体 73 13.2.2 泛型枚举类 74 13.3 impl泛型 75 13.3.1 对泛型类实现方法 75 13.3.2 对具体类实现方法 76 13.3.3 泛型方法 76 第14章 错误处理与空值 78 14.1 错误与错误处理 78 14.2 不可恢复错误 78 14.3 可恢复错误 79 14.3.1 Result枚举类 80 14.3.2 可恢复错误的传递 81 14.3.3 Error类型和它的kind方法 82 14.4 “空引用” 83 14.4.1 Null的概念 84 14.4.2 Option枚举类 84 第15章 工程组织和访问权 86 15.1 工程组织概念 86 15.1.1 箱 86 15.1.2 包 87 15.1.3 模块 87 15.2 访问权 88 15.2.1 模块访问权 88 15.2.2 结构体访问权 89 15.2.3 枚举类访问权 90 15.3 use 关键字 90 15.4 引用标准库 91 15.5 多源文件工程 92 15.5.1 新建源文件 92 15.5.2 运行多源文件程序 92 15.6 Cargo 93 15.6.1 Cargo是什么 93 15.6.2 Cargo功能 93 15.6.3 Cargo导入外部包 94 第16章 特性 96 16.1 定义特性 96 16.2 实现特性 96 16.3 默认特性 98 16.4 特性作参数 99 16.4.1 常规特性参数 99 16.4.2 泛型特性参数 100 16.4.3 特性叠加 101 16.5 特性作返回值 102 16.6 有条件的实现方法 104 第17章 文件与I/O 105 17.1 关于文件的概念 105 17.1.1 文件 105 17.1.2 流 105 17.2 打开文件 106 17.2.1 打开文件的种类 106 17.2.2 只读模式 106 17.3 创建新文件模式 109 17.3.1 创建新文件 109 17.3.2 覆盖文件 110 17.4 追加模式 110 17.5 自定义模式打开文件 111 17.5.1 OpenOptions对象 111 17.5.2 以读写模式打开文件 112 17.6 写入和读取二进制信息 114 17.7 文件系统 115 17.7.1 列出目录 115 17.7.2 创建目录 116 17.7.3 删除文件或目录 116 第18章 数据结构与集合 118 18.1 线性数据结构 118 18.1.1 向量 120 18.1.2 双端向量 124 18.1.3 链表 125 18.2 字符串 125 18.2.1 将数据转换为字符串 126 18.2.2 拼接字符串 127 18.2.3 字符串截取 128 18.2.4 UTF-8编码 129 18.3 映射表 131 18.3.1 散列映射表 131 18.3.2 B树映射表 132 18.4 集 133 18.4.1 散列集 133 18.4.2 B树集 135 18.5 堆 136 18.5.1 二叉堆 136 18.5.2 从向量创建堆 137 第19章 面向对象编程思想的实现 139 19.1 类 139 19.2 对象 141 19.3 封装 142 19.4 继承 143 19.5 多态 145 第20章 堆内存区 147 20.1 内存的分配方式 147 20.2 Box类型 148 20.3 Box解引用特性 150 20.4 dyn关键字 151 20.5 Box的所有权 151 第21章 高级引用 152 21.1 Box引用 152 21.2 Rc——引用计数 152 21.3 Mutex——互斥锁 155 第22章 运算符方法 158 22.1 Rust运算符方法 158 22.2 实现运算符方法 159 22.2.1 实现复数加法 159 22.2.2 引用类型运算符方法实现 160 22.3 支持实现运算符方法的运算符 161 22.4 特殊的运算符 162 22.4.1 Deref和DerefMut特性 162 22.4.2 Drop特性 163 22.4.3 Fn、FnMut和FnOnce特性 164 第23章 无畏并发 168 23.1 并发和问题 168 23.1.1 数据共用 168 23.1.2 数据回收 169 23.1.3 死锁 169 23.1.4 线程通信 169 23.2 多线程 170 23.3 线程通信 171 23.4 Arc线程安全引用计数 173 23.5 应对互斥锁死锁 175 23.5.1 用一个互斥锁保护 177 23.5.2 使用“标志互斥锁” 178 第24章 属性 180 24.1 属性的使用 180 24.2 条件编译属性 181 24.2.1 cfg 属性 181 24.2.2 test条件编译 182 24.2.3 “cfg_attr”属性 183 24.3 derive 派生属性 183 24.4 诊断属性 185 24.4.1 lint检查属性 185 24.4.2 deprecated属性 187 24.4.3 must_use属性 187 24.5 模块路径属性 188 24.6 其他属性 189 第25章 宏 190 25.1 宏的使用 190 25.2 宏的定义 191 25.3 过程宏 193 25.3.1 类函数过程宏 193 25.3.2 派生过程宏 196 25.3.3 属性宏 198 第26章 “不安全”语法 200 26.1 “不安全”域 200 26.2 原始指针 201 26.3 “不安全”的函数和方法 202 26.4 访问静态变量 203 26.5 “不安全”特性 204 26.6 共用体 205 第27章 Web服务器程序 208 27.1 TCP简介 208 27.1.1 建立TCP连接 209 27.1.2 搭建TCP服务器 209 27.2 UDP简介 212 27.3 简易的HTTP服务器 213 |
上大学期间,我从事过编译器的研究与实现,这个过程并不顺利,最终并没有开发出可以在生产环境中使用的编译器产品(像GCC或LLVM那样)。但这个过程让我个人收获很大,尤其在对编程语言的研究方面。 作为一个精通C语言的开发者,我同时在使用很多其他的编程语言,这是为了适应不同类型产品的开发需要。大量的开发过程让我全面地了解了这些编程语言(如C++、Java、ECMAScript、Kotlin甚至FORTRAN),与众不同的编程语法以及设计者的编程思想。在了解这些之后,我常常会将它们的优点相互比较,并尝试以一个较为通用的语言作为基础,希望设计出一个能解决大多数迄今为止计算机科学家们发现的主要编程问题的编程语言。这些想法往往会在开发过程中不由自主地产生。 经过长时间的思考与经验积累,我认为一个优秀的编程语言必须具备以下特质。 (1)执行高效。最好能直接编译到硬件原生语言(机器语言),避免解释执行。 (2)编译时保障内存安全。在编译时能够确定数据的生命周期,防止垃圾的产生或在运行时检测并回收垃圾。 (3)并发安全。能够适应高并发环境并保证运行安全。 (4)支持面向对象编程。能够实现面向对象的编程思想。 (5)结构管理。可以使用包管理器管理代码,并具有良好的程序结构。 (6)易于学习和使用。软件效率不仅体现在运行上,还体现在开发上。 具备了以上6点特质,基本上就是一门“完美语言”。我认为这种语言是不存在的,或者正在开发中。但事情往往就是这样,你认为没有诞生的东西往往已经被开发很久了。Rust语言就几乎具备以上全部的优秀特质。 Rust语言完全具备以上前5条特质,唯一的缺点就是不那么易于学习,这是因为以上总结出的优点都是主流编程语言存在问题的解决方法,意识到这些问题需要大量的实践,而且只有在意识到这些问题之后,才会理解这些优秀特质在开发中发挥的重要作用。因此,Rust语言为了实现这些特质采用了很多还没有流行起来的新方法(例如所有权机制)的作用较为难以理解,也就难以被学习。 编写本书的目的是让Rust学习变得更加容易,适合Rust入门者学习和使用参考。书中将Rust语言最经典、最广泛的语法以程序实例的方式介绍给读者,并尽可能地将它们讲得通俗易懂。本书内容依赖的背景知识会在章节开始介绍,如果这些知识对您来说驾轻就熟,请忽略它们。但是,Rust语言绝对不适合作为刚刚接触编程的入门者学习,学习它之前请尽量掌握C语言、C++语言等有关知识,它们是学习Rust语言知识的依赖项。 作者在本书出版前曾在“菜鸟教程”网站发布过社区版教程,且得到了来自Rust全球社区的支持,这些支持使书中的内容更加全面。 总体来说,Rust语言不是一门易于学习的语言。抱着这个心态,您也许可以更容易地学习这门语言。这门语言几乎可以在C++能够运行的一切环境中运行,且运行效率非常高,它的高并发能力被迄今为止使用过它的开发者们赞不绝口。 希望这个由Mozilla基金会开发的编程语言带给您全新的编程体验! 本书提供程序代码等配套资源,请扫描下方二维码或者到清华大学出版社官方网站本书页面下载。
配套资源
樊少冰 2022年3月 |
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格