新書推薦:

《
荷马社会研究(增补版)
》
售價:HK$
165.0

《
万千心理·与弗洛伊德的咖啡漫语:一场跨越时空的对话【精装】
》
售價:HK$
151.8

《
内北国而外中国:蒙元史研究 精装 中华学术·有道
》
售價:HK$
162.8

《
山中岁月:在日本小镇与传统相遇、与自然相融
》
售價:HK$
66.0

《
创伤自救指南:如何摆脱消极模式、修复人际关系并获得自由
》
售價:HK$
64.9

《
失控的孤独
》
售價:HK$
61.6

《
怀疑:破解天才困惑与凡人焦虑的心理谜题
》
售價:HK$
87.9

《
神圣的异端:法国中世纪纯洁派叙事研究
》
售價:HK$
107.8
|
編輯推薦: |
《Rust 编程很简单》—— 写给每一个渴望高效掌握 Rust 的初学者
在编程领域,Rust 凭借其内存安全与高性能的双重优势,已成为系统开发、嵌入式编程乃至 Web 开发的新宠。从 Android 原生代码到 Linux 内核,从大型科技公司到初创企业,Rust 的应用版图不断扩大。然而,对于许多初学者而言,Rust 的所有权机制、生命周期等概念如同难以逾越的门槛,市面上不少书籍或过于晦涩,或依赖复杂前置知识,让入门之路充满挫败感。
今天,我们向你推荐《Rust 编程很简单》—— 一本真正为初学者量身打造的 Rust 指南。它打破了传统编程书籍的桎梏,以 “简单、高效、友好” 为核心,让每一位读者都能轻松迈入 Rust 的世界。
这本书的最大魅力,在于其对初学者痛点的精准把握。作者以自身学习经历为镜,深知零基础学习者的困惑:担心没有编程基础?本书从零开始,不要求任何前置知识,用通俗易懂的语言解释每一个概念,避开晦涩术语;害怕依赖复杂工具?书中几乎所有代码示例都可在浏览器的 Rust Playground 中运行,无需安装 Rust 环境,一台电脑、一个浏览器就能开启学习
|
內容簡介: |
这是一本专为初学者量身打造的Rust编程指南,无论你是编程新手还是希望快速提升Rust编程技巧的开发者,本书都是你的不二之选。本书共有24章,包括基础知识,内存、变量和所有权,更复杂的类型,泛型、Option和Result,集合与错误处理,迭代器和闭包,生命周期和内部可变性,多线程,Box和Rust文档,测试,默认值、构建者模式和Deref,常量、不安全的Rust、外部crates,异步Rust,标准库、宏等。从基础概念到高级特性,全面覆盖,无须复杂设置。本书都将以清晰易懂的方式,引领你步入Rust编程的殿堂,开启高效、安全编程的新篇章。
來源:香港大書城megBookStore,http://www.megbook.com.hk 本书适合想要系统学习Rust编程语言的初学者阅读,也适合经验丰富的程序员细细品味。
|
關於作者: |
作者
大卫?麦克劳德在成为全职 Rust 开发人员之前,曾是一名教育家、韩英翻译、项目控制员和撰稿人。
译者
王鹏,谷歌开发者专家,字节跳动资深研发,十多年大厂经验,参与过多款国民级应用的设计研发,CSDN、掘金等平台签约作者,活跃于各技术社区,目前致力于Rust推广与实践。
|
目錄:
|
序
前言
第1章 一些基础知识/
1.1注释/
1.2原始类型:整数、字符和
字符串/
1.3类型推断/
1.4浮点数/
1.5Hello World和打印/
1.6声明变量和代码块/
1.7显示和调试/
1.8最小值和最大值/
1.9可变性/
1.10变量遮蔽(Shadowing)/
1.11总结/
第2章 内存、变量和所有权/
2.1栈、堆和指针/
2.2字符串/
2.3常量和静态变量/
2.4引用的更多内容/
2.5可变引用/
2.5.1Rust的引用规则/
2.5.2情景一:只有一个可变引用/
2.5.3情景二:仅有不可变引用/
2.5.4情景三: 问题情况/
2.6再聊聊变量遮蔽/
2.7将引用传递给函数/
2.8复制(Copy)类型/
2.9变量没有值/
2.10关于打印的更多内容/
2.11总结/
第3章 更复杂的类型/
3.1集合类型/
3.1.1数组/
3.1.2Vec(向量)/
3.1.3元组/
3.2控制流/
3.2.1基本控制流/
3.2.2匹配语句/
3.2.3循环/
3.3总结/
第4章 构建你自己的类型/
4.1结构体和枚举概述/
4.1.1结构体/
4.1.2枚举/
4.1.3将枚举类型转换为整数/
4.1.4枚举使用多种类型/
4.1.5实现结构体和枚举/
4.2解构/
4.3引用和点运算符/
4.4总结/
第5章 泛型、Option和Result/
5.1泛型/
5.2Option和Result/
5.2.1Option/
5.2.2Result/
5.2.3其他一些模式匹配的方法/
5.3总结/
第6章 更多的集合,更多的错误处理/
6.1其他集合/
6.1.1HashMap和BTreeMap/
6.1.2HashSet和BTreeSet/
6.1.3二叉堆/
6.1.4VecDeque/
6.2问号运算符/
6.3当 panic 和 unwrap 是合适的/
6.4总结/
第7章 特性:使不同类型执行相同的操作/
7.1特性:基础知识/
7.1.1你所需要的只是方法签名/
7.1.2更复杂的例子/
7.1.3特性约束/
7.1.4Traits类似于资格认证/
7.2From特性/
7.3孤儿规则/
7.4绕过孤儿规则的方法之一是使用
新类型/
7.5在函数中接受 String 和&str/
7.6总结/
第8章 迭代器和闭包/
8.1方法链/
8.2迭代器/
8.3闭包和迭代器中的闭包/
8.4总结/
第9章 再谈迭代器和闭包!/
9.1闭包和迭代器的有用方法/
9.1.1映射和过滤/
9.1.2更多的迭代器和相关方法/
9.1.3在迭代器中检查和查找项目/
9.1.4循环、压缩、折叠等/
9.2调试宏dbg! 和 .inspect/
9.3总结/
第10章 生命周期和内部可变性/
10.1&str的类型/
10.2生命周期注解/
10.2.1函数中的生命周期/
10.2.2类型中的生命周期注解/
10.2.3匿名生命周期/
10.3内部可变性/
10.3.1Cell/
10.3.2RefCell/
10.3.3Mutex/
10.3.4RwLock/
10.4总结/
第11章 多线程及更多内容/
11.1在函数内部导入和重命名/
11.2todo! 宏/
11.3类型别名/
11.4Cow/
11.5Rc/
11.5.1Rc的存在原因/
11.5.2实践中使用 Rc/
11.5.3使用 Rc 避免生命周期注解/
11.6多线程/
11.6.1创建线程/
11.6.2使用JoinHandle等待线程
完成/
11.6.3闭包的类型/
11.6.4使用 move 关键字/
11.7总结/
第12章 关于闭包、泛型和线程的更多内容/
12.1闭包作为参数/
12.1.1一些简单的闭包/
12.1.2FnOnce、FnMut和 Fn 之间的
关系/
12.1.3闭包都是独一无二的/
12.1.4闭包示例/
12.2impl Trait/
12.2.1常规泛型与impl Trait 的比较/
12.2.2使用impl Trait 返回闭包/
12.3Arc/
12.4作用域线程/
12.5通道(Channel)/
12.5.1通道基础/
12.5.2实现一个通道/
12.6总结/
第13章 Box和Rust文档/
13.1阅读 Rust 文档/
13.1.1assert_eq!/
13.1.2搜索/
13.1.3[src]按钮/
13.1.4特性信息/
13.1.5属性/
13.2Box/
13.2.1Box的基础知识/
13.2.2将 traits 放入 Box/
13.2.3使用 Box 处理多种错误类型/
13.2.4将 trait 对象向下转型为具体
类型/
13.3总结/
第14章 测试/
14.1包和模块/
14.1.1模块基础/
14.1.2关于 pub 关键字的更多信息/
14.1.3模块内的模块/
14.2测试/
14.2.1只需添加 #[test],它就变成了
一个test/
14.2.2当测试失败时发生了什么/
14.2.3编写多个测试/
14.3测试驱动开发(TDD)/
14.3.1构建一个计算器:从编写测试
开始/
14.3.2真正将计算器拼凑起来/
14.4总结/
第15章 默认值、构建者模式和Deref/
15.1实现 Default/
15.2构建者模式/
15.2.1编写构建者方法/
15.2.2在构建者模式中添加最终
检查/
15.2.3使构建者模式更严格/
15.3Deref和DerefMut/
15.3.1Deref基础知识/
15.3.2实现Deref/
15.3.3实现DerefMut/
15.3.4错误使用Deref/
15.4总结/
第16章 常量、不安全的Rust、外部 crates/
16.1常量泛型/
16.2常量函数/
16.3可变的静态变量/
16.4不安全的 Rust/
16.4.1概述/
16.4.2在不安全的 Rust 中使用静态可变
变量/
16.4.3Rust中最著名的不安全
方法/
16.4.4以_unchecked 结尾的
方法/
16.5引入外部 crate/
16.5.1Crates和 Cargo.toml/
16.5.2使用 rand crate/
16.5.3使用 rand 函数掷骰子/
16.6总结/
第17章 Rust最流行的crate/
17.1serde/
17.2标准库中的时间/
17.3chrono/
17.3.1检查外部库中的代码/
17.3.2再次回到 chrono/
17.4rayon/
17.5anyhow和thiserror/
17.5.1anyhow/
17.5.2thiserror/
17.6通用特性实现/
17.7lazy_static和 once_cell/
17.7.1lazy_static:延迟评估的静态
变量/
17.7.2OnceCell:只能写入一次的
单元/
17.8总结/
第18章 在你的计算机上使用Rust/
18.1Cargo/
18.1.1为什么每个人都使用 Cargo/
18.1.2使用 Cargo 和 Rust 编译时的
操作/
18.2处理用户输入/
18.2.1通过 stdin 的用户输入/
18.2.2访问命令行参数/
18.2.3访问环境变量/
18.3使用文件/
18.3.1创建文件/
18.3.2打开现有文件/
18.3.3使用OpenOptions处理文件/
18.4Cargo doc/
18.5总结/
第19章 更多crate和异步Rust/
19.1reqwest crate/
19.2特性标志/
19.3异步 Rust/
19.3.1异步基础/
19.3.2检查 Future 是否准备好/
19.3.3使用异步运行时/
19.3.4关于异步 Rust 的其他一些
细节/
19.4总结/
第20章 标准库之旅/
20.1数组/
20.1.1数组现在实现了迭代器/
20.1.2解构和映射数组/
20.1.3使用 from_fn 创建数组/
20.2字符(char)/
20.3整数/
20.3.1检查操作/
20.3.2Add特性和其他类似特性/
20.4浮点数/
20.5关联项和关联常量/
20.5.1关联函数/
20.5.2关联类型/
20.5.3关联常量/
20.6bool/
20.7Vec/
20.8String/
20.9OsString和 CString/
20.10总结/
第21章 继续游览标准库/
21.1std∷mem/
21.2设置panic钩子/
21.3查看回溯(backtrace)/
21.4标准库的前言(prelude)/
21.5其他宏/
21.5.1unreachable!/
21.5.2column!, line!, file!,
module_path!/
21.5.3thread_local!/
21.5.4cfg!/
21.6总结/
第22章 编写自己的宏/
22.1宏存在的原因/
22.2编写基本宏/
22.3从标准库中读取宏/
22.4使用宏保持代码整洁/
22.5总结/
第23章 项目实战——半成品项,需要等你完成/
23.1为最后两章设置项目/
23.2打字教程/
23.2.1设置和第一段代码/
23.2.2开发代码/
23.2.3进一步开发和清理/
23.2.4现在轮到你了/
23.3维基百科文章摘要搜索器/
23.3.1设置和第一段代码/
23.3.2开发代码/
23.3.3进一步开发和清理/
23.3.4现在轮到你了/
23.4终端秒表和时钟/
23.4.1设置和第一段代码/
23.4.2开发代码/
23.4.3进一步开发和清理/
23.4.4现在轮到你了/
23.5总结/
第24章 项目实战,继续挑战未完成的项目/
24.1网页服务器猜词游戏/
24.1.1设置和第一段代码/
24.1.2开发代码/
24.1.3进一步开发和清理/
24.1.4现在轮到你了/
24.2激光笔/
24.2.1设置和第一段代码/
24.2.2开发代码/
24.2.3进一步开发和清理/
24.2.4现在轮到你了/
24.3目录和文件导航器/
24.3.1设置和第一段代码/
24.3.2开发代码/
24.3.3进一步开发和清理/
24.3.4现在轮到你了/
24.4总结/
|
內容試閱:
|
感谢你购买了本书。现在正是你开始学习Rust的好时机!
在尝试了多门语言之后,Rust吸引了我。在Rust中,我找到了我所见过最友好的编译器,其惊人的性能使我对计算机如何工作,以及如何管理内存有了更深的了解。我希望你也能拥有类似的体验。
本书旨在尽可能提供最快、最简单和最完整的Rust入门。它不需要你对Rust或其他编程知识有任何了解。某种程度上,这本书是我写给自己的,那时我刚开始学习Rust。所以在很多方面它对同样是初学者的你也会非常友好,例如:
我过去是在工作的午休时间开始学习的,只有一台小笔记本计算机,甚至VS Code都无法正常运行。因此几乎所有的代码示例都不依赖VS Code这样的IDE,甚至不需要安装Rust。它们可以在Rust Playground上的浏览器中运行。
我过去对各种编程术语不太熟悉,当时许多Rust书籍将Rust与C 进行比较,这很令人困惑。因此,这本书中的用语通俗易懂,而且不需要你了解任何其他编程语言。
我过去渴望尽可能多地学习,但很难专注于太冗长的代码示例。因此,书中的代码示例相当简短,只帮你掌握一个概念足矣,这之后再进入下一个概念的学习。
我过去忙于标准库,而不太考虑外部库,在Rust中被称为箱(crate)。所以,这本书首先尽量使用标准库,其次再去查找常用的 crates。
话虽如此,Rust仍然是一种即使是经验丰富的程序员,也需要坐下来思考的语言,并非学习一遍就能掌握。许多人都说过,Rust需要大量反复学习才能逐渐适应,而且Rust对此有所回报(反之,如果你仓促行事,Rust也会惩罚你)。因此,从这个意义上来看,本书既适合初学者学习,也适合经验丰富的程序员细细品味。
近年来,Rust发展得越来越好,例如新增的Android native代码中 21% 都是用Rust编写的,甚至连Linux内核本身也是。Rust必将继续展现令人难以置信的增长,所以现在是开始学习它的最佳时机。
在我2019年开始学习Rust时,许多书籍都会列出使用Rust的大公司,以证明它是一门能胜任正式工作的成熟语言。到了今天,我想已经不太需要了——因为使用Rust的公司已经遍地都是了!
到目前为止,看到编辑和读者对这本书的反馈实在令人欣慰,这足以证明本书是一本更加容易学习且更全面的Rust语言入门书。
David Macleod
|
|