 Rust 程序设计语言简体中文版变量作用域 既然我们已经掌握了基本语法,将不会在之后的例子中包含 fn main() { 代码,所以如果你 是一路跟过来的,必须手动将之后例子的代码放入一个 main 函数中。这样,例子将显得更加 简明,使我们可以关注实际细节而不是样板代码。 在所有权的第一个例子中,我们看看一些变量的 作用域(scope)。作用域是一个项(item) 在程序中有效的范围。假设有这样一个变量: let s = "hello"; entry 方法只在键没有对应一个值时插入 Entry 的 or_insert 方法在键对应的值存在时就返回这个值的可变引用,如果不存在则将参 数作为新值插入并返回新值的可变引用。这比编写自己的逻辑要简明的多,另外也与借用检查 器结合得更好。 运行示例 8-24 的代码会打印出 {"Yellow": 50, "Blue": 10} 。第一个 entry 调用会插入黄 队的键和值 50 ,因为黄队并没有一个值。第二个 序的逻辑。正如 “二进制项目的关注分离” 部 分所展开的讨论,我们将提取一个叫做 run 的函数来存放目前 main 函数中不属于设置配置 或处理错误的所有逻辑。一旦完成这些,main 函数将简明得足以通过观察来验证,而我们将 能够为所有其他逻辑编写测试。 示例 12-11 展示了提取出来的 run 函数。目前我们只进行小的增量式的提取函数的改进。我 们仍将在 src/main.rs 中定义这个函数:0 码力 | 600 页 | 12.99 MB | 1 年前3 Rust 程序设计语言简体中文版变量作用域 既然我们已经掌握了基本语法,将不会在之后的例子中包含 fn main() { 代码,所以如果你 是一路跟过来的,必须手动将之后例子的代码放入一个 main 函数中。这样,例子将显得更加 简明,使我们可以关注实际细节而不是样板代码。 在所有权的第一个例子中,我们看看一些变量的 作用域(scope)。作用域是一个项(item) 在程序中有效的范围。假设有这样一个变量: let s = "hello"; entry 方法只在键没有对应一个值时插入 Entry 的 or_insert 方法在键对应的值存在时就返回这个值的可变引用,如果不存在则将参 数作为新值插入并返回新值的可变引用。这比编写自己的逻辑要简明的多,另外也与借用检查 器结合得更好。 运行示例 8-24 的代码会打印出 {"Yellow": 50, "Blue": 10} 。第一个 entry 调用会插入黄 队的键和值 50 ,因为黄队并没有一个值。第二个 序的逻辑。正如 “二进制项目的关注分离” 部 分所展开的讨论,我们将提取一个叫做 run 的函数来存放目前 main 函数中不属于设置配置 或处理错误的所有逻辑。一旦完成这些,main 函数将简明得足以通过观察来验证,而我们将 能够为所有其他逻辑编写测试。 示例 12-11 展示了提取出来的 run 函数。目前我们只进行小的增量式的提取函数的改进。我 们仍将在 src/main.rs 中定义这个函数:0 码力 | 600 页 | 12.99 MB | 1 年前3
 Rust 程序设计语言 简体中文版 1.85.0entry 方法只在键没有对应一个值时插入 Entry 的 or_insert 方法在键对应的值存在时就返回这个值的可变引用,如果不存在则将参数 作为新值插入并返回新值的可变引用。这比编写自己的逻辑要简明的多,另外也与借用检查器 结合得更好。 运行示例 8-24 的代码会打印出 {"Yellow": 50, "Blue": 10}。第一个 entry 调用会插入黄队 的键和值 50,因为黄队并没有一个值。第二个 现在我们完成了配置解析的重构,让我们转向程序的逻辑。正如“二进制项目的关注分离”部分 所展开的讨论,我们将提取一个叫做 run 的函数来存放目前 main 函数中不属于设置配置或处 理错误的所有逻辑。一旦完成这些,main 函数将简明得足以通过观察来验证,而我们将能够 为所有其他逻辑编写测试。 示例 12-11 展示了提取出来的 run 函数。目前我们只进行小的增量式的提取函数的改进。我 们仍将在 src/main.rs 中定义这个函数: 296/562Rust 程序设计语言 简体中文版 } results } 示例 13-21:示例 12-19 中 search 函数的定义 可以通过使用迭代器适配器方法来编写更简明的代码。这样做还可以避免使用一个可变的中间 results vector。函数式编程风格倾向于最小化可变状态的数量来使代码更清晰。去除可变状 态可能会使未来的并行搜索优化变得更容易,因为我们不必管理对0 码力 | 562 页 | 3.23 MB | 25 天前3 Rust 程序设计语言 简体中文版 1.85.0entry 方法只在键没有对应一个值时插入 Entry 的 or_insert 方法在键对应的值存在时就返回这个值的可变引用,如果不存在则将参数 作为新值插入并返回新值的可变引用。这比编写自己的逻辑要简明的多,另外也与借用检查器 结合得更好。 运行示例 8-24 的代码会打印出 {"Yellow": 50, "Blue": 10}。第一个 entry 调用会插入黄队 的键和值 50,因为黄队并没有一个值。第二个 现在我们完成了配置解析的重构,让我们转向程序的逻辑。正如“二进制项目的关注分离”部分 所展开的讨论,我们将提取一个叫做 run 的函数来存放目前 main 函数中不属于设置配置或处 理错误的所有逻辑。一旦完成这些,main 函数将简明得足以通过观察来验证,而我们将能够 为所有其他逻辑编写测试。 示例 12-11 展示了提取出来的 run 函数。目前我们只进行小的增量式的提取函数的改进。我 们仍将在 src/main.rs 中定义这个函数: 296/562Rust 程序设计语言 简体中文版 } results } 示例 13-21:示例 12-19 中 search 函数的定义 可以通过使用迭代器适配器方法来编写更简明的代码。这样做还可以避免使用一个可变的中间 results vector。函数式编程风格倾向于最小化可变状态的数量来使代码更清晰。去除可变状 态可能会使未来的并行搜索优化变得更容易,因为我们不必管理对0 码力 | 562 页 | 3.23 MB | 25 天前3
共 2 条
- 1













