![]()
内容推荐 本书可帮助读者学会在Unix、Linux shell、MacOS和Windows命令行上以轻松、循序渐进的方式使用Rust进行编程,引导读者全面了解Rust提供的功能。 本书从Rust的基础开始讲解,包括如何命名对象、控制执行流和处理基本类型。你将了解如何进行算术运算、分配内存、使用选代器以及处理输入/输出。掌握了这些核心技能后,你将很快就能用Rust处理错误并使用Rust的面向对象特性构建强大的Rust应用程序。 本书对初学者非常友好,只需了解基本的编程知识——最好是有C或C++的基础知识,就可以完成本书的学习。而且,要充分理解本书,只需知道什么是整数和浮点数,以及能够区分标识符和字符串就可以了。 作者简介 卡洛·米拉内西(Carlo Milanesi),Rust专家和专业软件开发人员。他是Rust开发社区的贡献者,也曾使用PHP、JavaScript、Java、Ionic和Vaadin框架基于Linux进行Web应用程序开发。他还涉猎了其他技术,包括GUI设计、2D和3D渲染、测试自动化、数据库访问等。他毕业于米兰大学,曾在金融和计算机辅助制造行业工作。 目录 前言 作者简介 审校者简介 第1章 终端打印 1.1 如何开始 1.2 Hello,world! 1.3 打印字面量字符串的组合 1.4 打印多行文本 1.5 打印整数 1.6 命令行脚本 1.7 注释 第2章 算术运算 2.1 整数加法 2.2 整数之间的其他运算 2.3 浮点运算 2.4 语句序列 2.5 分断字面量字符串 第3章 命名对象 3.1 将名称与值相关联 3.2 可变变量 3.3 未变化的可变变量 3.4 未初始化的变量 3.5 前导下划线 3.6 布尔值 3.7 布尔表达式 3.8 赋值中的类型一致性 3.9 类型和可变性的改变 3.10 赋值算术运算符 3.11 使用标准库的函数 第4章 控制执行流 4.1 条件语句(if) 4.2 条件表达式 4.3 条件循环(while) 4.4 无限循环(loop) 4.5 计数循环(for) 4.6 变量作用域 第5章 使用数据序列 5.1 数组 5.1.1 可变数组 5.1.2 指定大小的数组 5.1.3 多维数组 5.2 向量 5.3 空数组和空向量 5.4 调试打印 5.5 复制数组和向量 第6章 使用基本类型 6.1 非十进制数字基数 6.2 数字字面量中的下划线 6.3 指数表示法 6.4 各种有符号整数 6.5 无符号整数类型 6.6 目标相关的整数类型 6.7 类型推断 6.8 浮点数值类型 6.9 显式转换 6.10 数字字面量的类型后缀 6.11 所有数值类型 6.12 布尔值和字符 6.13 空元组 6.14 数组和向量类型 6.15 常数 6.16 发现表达式的类型 第7章 枚举情况 7.1 枚举 7.2 match构造 7.3 关系运算符和枚举 7.4 处理所有情况 7.4.1 对数字使用match 7.4.2 数据枚举 7.4.3 “match”表达式 7.4.4 在match结构中使用守卫 第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 从函数返回值 9.2.1 提前退出 9.2.2 返回多个值 9.3 如何更改属于调用者的变量 9.4 通过引用传递参数 9.4.1 使用引用 9.4.2 引用的可变性 第10章 定义泛型函数和结构 10.1 对泛型函数的需求 10.2 定义和使用泛型函数 10.3 推断参数类型 10.4 定义和使用泛型结构 10.4.1 泛型机制 10.4.2 泛型数组和向量 10.4.3 泛型枚举 10.5 错误处理 10.6 枚举标准实用程序函数 第11章 分配内存 11.1 各种分配 11.1.1 线性寻址 11.1.2 静态分配 11.1.3 栈分配 11.1.4 堆分配 11.2 与C和C++的相似性 11.3 装箱与拆箱 11.4 寄存器分配 第12章 数据实现 12.1 探索对象的大小 12.1.1 use指令 12.1.2 基本类型的大小 12.2 基本类型的表示 12.3 字节在内存中的位置 12.4 复合数据类型的大小 12.5 向量分配 第13章 定义闭包 13.1 对“一次性”函数的需求 13.2 捕获环境 13.3 闭包 13.4 其他例子 第14章 使用可变字符串 14.1 静态字符串 14.2 动态字符串 14.3 字符串的实现 14.4 创建字符串 14.5 连接字符串 第15章 范围和切片 15.1 范围 15.2 将序列传递给函数 15.3 切片 15.4 切片操作 15.5 超出范围的切片 15.6 可变切片 15.7 开放式范围和切片操作 第16章 使用迭代器 16.1 字符串字符 16.2 扫描字符串 16.3 在for循环中使用迭代器 16.3.1 不可变的迭代 16.3.2 可变的迭代 16.4 迭代器适配器:filter 16.4.1 map迭代器适配器 16.4.2 enumerate迭代器适配器 16.5 迭代器消费者:any 16.5.1 all迭代器消费者 16.5.2 count迭代器消费者 16.5.3 sum迭代器消费者 16.5.4 min和max迭代器消费者 16.5.5 collect消费者 16.6 迭代器链 16.7 迭代器是“惰性的” 第17章 输入/输出和错误处理方式 17.1 命令行参数 17.2 进程返回码 17.3 环境变量 17.4 从控制台读取 17.5 正确的运行时错误处理 17.6 写入控制台 17.7 将值转换为字符串 17.8 文件输入/输出 17.9 处理文本文件 第18章 使用trait 18.1 对trait的需求 18.2 trait的补救 18.3 没有trait界限的泛型函数 18.4 trait作用域 18.5 多函数trait 18.6 方法 18.7 “self”和“Self”关键字 18.8 标准trait 18.8.1 “Iterator” trait 18.8.2 “type”关键字 18.8.3 泛型trait 18.8.4 使用关联类型简化泛型trait使用 18.8.5 “Iterator”标准trait声明 18.9 使用泛型迭代器 第19 |