您好,欢迎来到聚文网。 登录 免费注册
Rust编程:入门、实战与进阶

Rust编程:入门、实战与进阶

  • 出版社: 机械工业
  • 作者: 朱春雷
  • 商品条码: 9787111679103
  • 版次: 1
  • 开本: 16开
  • 页数: 305
  • 出版年份: 2021
  • 印次: 1
定价:¥89 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
内容简介<br>这是一部注重编码能力训练的实战性著作,既能帮助读者扎实掌握Rust的主要语法知识并具备实战能力,又能指导读者快速从初学者晋级为高手。<br>全书秉持学以致用的原则:一方面,没有事无巨细地罗列Rust的每一个语法知识点,但是常用知识点和重要知识点悉数囊括;一方面,将各种常见数据结构和算法与Rust编程实战相结合,同时精选39道LeetCode高频算法面试题,帮助读者快速语法知识固化为实战能力。<br>全书一共15章,分为3个部分:<br>第1部分(第1~11章) Rust编程必备语法<br>非常有针对性地讲解了Rust的常用语法,由浅入深,循序渐进,能帮助读者快速掌握Rust的必备语法知识并具备基本的编程能力<br>第二部分(第12~13章) Rust编码能力训练<br>将数组、栈、队列、哈希表、链表、树等实用的数据结构和递归、分治、回溯、二分查找、深度优先搜索、广度优先搜索、排序、动态规划等常用算法与Rust编程实战结合,并精选39道LeetCode高频算法面试真题,帮助读者将语法知识转化为编程实战能力。<br>第三部分(第14~15章) Rust综合进阶实战<br>以排序算法为主题,围绕功能拓展和性能拓展两条主线,结合工程管理、泛型、trait系统、高阶函数、闭包、迭代器、单元测试、多线程并发和异步并发等重要的语法知识点进行综合实战训练,进一步在实战中提升编程水平。
作者简介
作者简介<br>朱春雷<br>北京大学软件工程硕士,资深Rust技术专家和区块链技术专家,有10年以上软件开发经验。<br>Web3meta Labs创始人兼首席技术官,Polkadot(波卡)技术大使,熟悉区块链技术框架Substrate开发。Web3meta Labs致力于为Ethereum、Polkadot等领先的区块链项目打造基础设施。
目录
前言<br/>语言基础篇<br/>第1章 初识Rust2<br/>1.1 Rust语言简介2<br/>1.2 搭建编程环境3<br/>1.3 Hello Rust4<br/>1.4 Hello Cargo5<br/>1.5 本章小结7<br/>第2章 变量与数据类型8<br/>2.1 变量和可变性8<br/>2.1.1 变量声明8<br/>2.1.2 变量的可变性9<br/>2.1.3 变量遮蔽9<br/>2.1.4 常量10<br/>2.2 基本数据类型11<br/>2.2.1 整数类型11<br/>2.2.2 浮点数类型12<br/>2.2.3 布尔类型12<br/>2.2.4 字符类型12<br/>2.2.5 范围类型12<br/>2.3 复合数据类型13<br/>2.3.1 元组类型13<br/>2.3.2 数组类型14<br/>2.3.3 结构体类型15<br/>2.3.4 枚举类型17<br/>2.4 容器类型18<br/>2.4.1 Vec18<br/>2.4.2 VecDeque21<br/>2.4.3 HashMap25<br/>2.5 字符串28<br/>2.5.1 字符串的创建29<br/>2.5.2 字符串的修改29<br/>2.5.3 字符串的访问32<br/>2.6 字面量和运算符34<br/>2.6.1 字面量34<br/>2.6.2 运算符34<br/>2.7 本章小结35<br/>第3章 流程控制37<br/>3.1 条件判断37<br/>3.1.1 if条件判断37<br/>3.1.2 if-else条件判断38<br/>3.1.3 if-else if-else条件判断38<br/>3.2 循环39<br/>3.2.1 loop循环39<br/>3.2.2 while循环40<br/>3.2.3 for循环40<br/>3.2.4 continue和break语句41<br/>3.3 match模式匹配41<br/>3.4 if let和while let模式匹配42<br/>3.5 本章小结43<br/>第4章 函数、闭包与迭代器44<br/>4.1 函数44<br/>4.1.1 定义函数44<br/>4.1.2 方法和函数46<br/>4.1.3 高阶函数47<br/>4.2 闭包50<br/>4.2.1 基本语法50<br/>4.2.2 类型推断50<br/>4.2.3 捕获环境变量51<br/>4.3 迭代器51<br/>4.3.1 Iterator trait52<br/>4.3.2 消费器52<br/>4.3.3 迭代器适配器54<br/>4.4 本章小结56<br/>第5章 类型系统57<br/>5.1 泛型57<br/>5.1.1 泛型与容器57<br/>5.1.2 泛型与结构体58<br/>5.1.3 泛型与枚举60<br/>5.1.4 泛型与函数61<br/>5.1.5 泛型与方法61<br/>5.2 trait系统62<br/>5.2.1 trait定义与实现62<br/>5.2.2 trait作为参数63<br/>5.2.3 返回实现trait的类型66<br/>5.2.4 标准库常用trait66<br/>5.3 类型转换71<br/>5.3.1 原生类型间的转换71<br/>5.3.2 数字与String类型间的转换72<br/>5.3.3 &str与String类型间的转换73<br/>5.4 本章小结73<br/>第6章 所有权系统74<br/>6.1 通用概念74<br/>6.1.1 栈内存与堆内存74<br/>6.1.2 值语义与引用语义75<br/>6.1.3 复制语义与移动语义75<br/>6.2 所有权机制76<br/>6.2.1 变量绑定76<br/>6.2.2 所有权转移77<br/>6.2.3 浅复制与深复制81<br/>6.3 引用和借用83<br/>6.3.1 引用与可变引用83<br/>6.3.2 借用规则87<br/>6.3.3 借用示例1:切片88<br/>6.3.4 借用示例2:迭代器90<br/>6.4 生命周期92<br/>6.4.1 生命周期语法92<br/>6.4.2 悬垂引用94<br/>6.4.3 生命周期与函数96<br/>6.4.4 生命周期与结构体98<br/>6.4.5 生命周期省略规则100<br/>6.5 本章小结100<br/>第7章 智能指针102<br/>7.1 独占所有权的Box<T>102<br/>7.1.1 Box<T>在堆上存储数据102<br/>7.1.2 Deref解引用103<br/>7.1.3 Drop清理资源104<br/>7.2 共享所有权的Rc<T>105<br/>7.3 应对内部可变性的RefCell<T>106<br/>7.4 本章小结108<br/>第8章 并发编程109<br/>8.1 多线程并发109<br/>8.1.1 线程管理110<br/>8.1.2 线程池114<br/>8.2 异步并发115<br/>8.2.1 async/.await语法115<br/>8.2.2 async-std库117<br/>8.3 本章小结119<br/>第9章 错误处理120<br/>9.1 Result<T, E>120<br/>9.1.1 高效处理Result<T, E>121<br/>9.1.2 处理不同类型的错误122<br/>9.1.3 传播错误123<br/>9.2 Panic125<br/>9.2.1 追踪Panic125<br/>9.2.2 捕获Panic126<br/>9.3 本章小结127<br/>第10章 模块化编程128<br/>10.1 crate管理128<br/>10.1.1 使用Cargo创建crate129<br/>10.1.2 使用第三方crate129<br/>10.2 module系统130<br/>10.2.1 定义模块130<br/>10.2.2 创建多文件模块131<br/>10.2.3 多文件模块的层级关系132<br/>10.2.4 模块的可见性133<br/>10.2.5 使用use导入模块135<br/>10.2.6 模块的路径136<br/>10.2.7 使用pub use重导出136<br/>10.2.8 加载外部crate137<br/>10.3 本章小结138<br/>第11章 单元测试139<br/>11.1 单元测试框架139<br/>11.2 编写测试140<br/>11.2.1 使用assert!140<br/>11.2.2 使用assert_eq!和assert_ne!141<br/>11.2.3 自定义失败信息142<br/>11.3 运行测试143<br/>11.3.1 运行部分测试144<br/>11.3.2 忽略某些测试145<br/>11.4 本章小结146<br/>编程能力训练篇<br/>第12章 数据结构实战148<br/>12.1 数组148<br/>12.1.1 移动零149<br/>12.1.2 加一156<br/>12.1.3 删除排序数组中的重复项158<br/>12.2 栈与队列159<br/>12.2.1 最小栈160<br/>12.2.2 有效的括号163<br/>12.2.3 滑动窗口最大值165<br/>12.3 哈希表168<br/>12.3.1 两数之和170<br/>12.3.2 有效的字母异位词172<br/>12.3.3 字母异位词分组174<br/>12.4 链表179<br/>12.4.1 反转链表182<br/>12.4.2 链表的中间节点183<br/>12.4.3 合并两个有序链表185<br/>12.4.4 删除链表的倒数第n个节点187<br/>12.5 树191<br/>12.5.1 二叉树的前序遍历195<br/>12.5.2 二叉树的中序遍历199<br/>12.5.3 二叉树的后序遍历202<br/>12.5.4 二叉树的层次遍历206<br/>12.5.5 二叉搜索树中的插入操作208<br/>12.6 本章小结211<br/>第13章 算法实战213<br/>13.1 递归、分治与回溯213<br/>13.1.1 pow(x, n)216<br/>13.1.2 爬楼梯218<br/>13.1.3 括号生成220<br/>13.1.4 子集222<br/>13.1.5 组合224<br/>13.1.6 N皇后227<br/>13.2 二分查找230<br/>13.2.1 搜索旋转排序数组231<br/>13.2.2 寻找旋转排序数组中的最小值232<br/>13.2.3 有效的完全平方数235<br/>13.3 深度与广度优先搜索236<br/>13.3.1 二叉树的最大深度239<br/>13.3.2 二叉树的最小深度242<br/>13.3.3 二叉搜索树中的搜索244<br/>13.4 排序算法246<br/>13.4.1 数组中的第k个最大元素257<br/>13.4.2 合并区间259<br/>13.4.3 翻转对261<br/>13.5 动态规划264<br/>13.5.1 爬楼梯265<br/>13.5.2 最小路径和267<br/>13.5.3 三角形最小路径和269<br/>13.5.4 零钱兑换270<br/>13.5.5 最长上升子序列273<br/>13.5.6 编辑距离274<br/>13.6 本章小结277<br/>综合实战篇<br/>第14章 泛型与高阶函数实战280<br/>14.1 工程管理280<br/>14.2 泛型编程281<br/>14.2.1 插入排序算法282<br/>14.2.2 加载算法库284<br/>14.2.3 结构体实例排序285<br/>14.3 高阶函数编程287<br/>14.3.1 排序算法库287<br/>14.3.2 生成随机数据291<br/>14.3.3 排序算法API库292<br/>14.4 本章小结295<br/>第15章 并发编程实战296<br/>15.1 多线程并发296<br/>15.2 异步并发298<br/>15.2.1 排序算法库的异步实现298<br/>15.2.2 排序算法API库的异步实现302<br/>15.2.3 创建可执行程序303<br/>15.3 本章小结305

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网