# Summary


[序和前言](Ch00_Forword_and_Introduction.md)

---

# 上篇

- [入门](Ch01_Getting_Started.md)
    - [安装](getting_started/installation.md)
    - [Hello, World!](getting_started/hello_world.md)
    - [你好，Cargo！](getting_started/hello_cargo.md)

- [编写猜数游戏](Ch02_Programming_a_Guessing_Game.md)

- [常见编程概念](Ch03_Common_Programming_Concepts.md)
    - [变量与可变性](programming_concepts/variables_and_mutability.md)
    - [数据类型](programming_concepts/data_types.md)
    - [函数](programming_concepts/functions.md)
    - [注释](programming_concepts/comments.md)
    - [控制流](programming_concepts/control_flow.md)

- [“掌握” 所有权](Ch04_Understanding_Ownership.md)
    - [何为所有权？](ownership/about_ownership.md)
    - [引用与借用](ownership/references_and_borrowing.md)
    - [切片类型](ownership/the_slice_type.md)

- [使用结构体组织相关数据](Ch05_Using_Structs_to_Structure_Related_Data.md)
    - [定义与实例化结构体](structs/defining_and_instantiating.md)
    - [使用结构体的示例程序](structs/example_program.md)
    - [方法](structs/method_syntax.md)

- [枚举与模式匹配](Ch06_Enums_and_Pattern_Matching.md)
    - [定义枚举](enums_and_pattern_matching/defining_an_enum.md)
    - [`match` 控制流结构](enums_and_pattern_matching/match_control_flow.md)
    - [`if let` 与 `let else` 下的简明控制流](enums_and_pattern_matching/if-let_control_flow.md)

- [包、代码箱与模组](Ch07_Managing_Growing_Projects_with_Packages_Crates_and_Modules.md)
    - [代码包与代码箱](packages_crates_and_modules/packages_and_crates.md)
    - [在模组下控制作用域及隐私](packages_crates_and_modules/defining_modules.md)
    - [引用模组树中项目的路径](packages_crates_and_modules/paths.md)
    - [以 `use` 关键字带入路径到作用域](packages_crates_and_modules/the_use_keyword.md)
    - [拆分模组为不同文件](packages_crates_and_modules/separating_modules.md)

- [常见集合](Ch08_Common_Collections.md)
    - [以矢量值存储值列表](common_collections/vectors.md)
    - [以字符串存储 UTF-8 编码的文本](common_collections/strings.md)
    - [在哈希图中存储键与关联值](common_collections/hash_maps.md)

- [错误处理](Ch09_Error_Handling.md)
    - [`panic!` 下的不可恢复错误](error_handling/panic.md)
    - [`Result` 下的可恢复错误](error_handling/result.md)
    - [要 `panic!` 还是不要 `panic!`](error_handling/panic_or_not.md)

- [泛型、特质与生命周期](Ch10_Generic_Types_Traits_and_Lifetimes.md)
    - [泛型数据类型](generic_types_traits_and_lifetimes/generics.md)
    - [以特质定义共用行为](generic_types_traits_and_lifetimes/traits.md)
    - [以生命周期验证引用](generic_types_traits_and_lifetimes/lifetimes.md)


- [编写自动化测试](Ch11_Writing_Automated_Tests.md)
    - [怎样编写测试](automated_tests/howto.md)
    - [控制测试运行方式](automated_tests/how_tests_are_run.md)
    - [测试的组织](automated_tests/test_organization.md)

- [I/O 项目：构建命令行程序](Ch12_An_IO_Project_Building_a_Command_Line_Program.md)
    - [接受命令行参数](io_project/accepting_cli_arguments.md)
    - [读取文件](io_project/reading_a_file.md)
    - [重构以改进模组化和错误处理](io_project/refactoring.md)
    - [以测试驱动开发添加功能](io_project/test_driven_dev.md)
    - [使用环境变量](io_project/env_variables.md)
    - [重定向错误到标准错误](io_project/std_err.md)


- [函数式语言特性：迭代器与闭包](Ch13_Functional_Language_Features_Iterators_and_Closures.md)
    - [闭包](functional_features/closures.md)
    - [以迭代器处理一序列项目](functional_features/iterators.md)
    - [改进我们的 I/O 项目](functional_features/improving_io_project.md)
    - [循环与迭代器下的性能问题](functional_features/performance.md)

- [Cargo 的其他方面及 Crates.io](Ch14_More_about_Cargo_and_Crates-io.md)
    - [在发布配置文件下定制构建](crates-io/release_profiles.md)
    - [发布代码箱到 Crates.io](crates-io/publishing.md)
    - [Cargo 工作区](crates-io/workspace.md)
    - [以 `cargo install` 安装二进制代码箱](crates-io/cargo_install.md)
    - [以定制命令扩展 Cargo](crates-io/custom_commands.md)

---

# 下篇

- [灵巧指针](Ch15_Smart_Pointers.md)
    - [使用 `Box<T>` 指向堆上数据](smart_pointers/box-t.md)
    - [将灵巧指针视为普通引用](smart_pointers/deref-t.md)
    - [通过 `Drop` 特质在清理时运行代码](smart_pointers/drop-t.md)
    - [`Rc<T>`，引用计数的灵巧指针](smart_pointers/rc-t.md)
    - [`RefCell<T>` 与内部可变性模式](smart_pointers/refcell-t.md)
    - [引用环会泄露内存](smart_pointers/ref-cycles.md)

- [无惧并发](Ch16_Fearless_Concurrency.md)
    - [使用线程同时运行代码](concurrency/threads.md)
    - [通过消息传递在线程间传输数据](concurrency/message_passing.md)
    - [共用状态的并发](concurrency/shared-state.md)
    - [`Sync` 与 `Send` 特质下的可扩展并发](concurrency/extensible_concurrency.md)


- [异步编程基础：异步、等待、未来值与流](Ch17_async_programming.md)
    - [未来值与异步语法](async/futures.md)
    - [以异步实现并发](async/concurrency_n_async.md)
    - [使用任意数量的未来值](async/multiple_futures.md)
    - [流：序列中的未来值](async/streams.md)
    - [近观异步的特质](async/async_traits.md)
    - [未来值、任务与线程](async/all_together.md)


- [面向对象编程特性](Ch18_Object_Oriented_Programming_Features_of_Rust.md)
    - [面向对象语言的特征](oop/characteristics_oop.md)
    - [使用特质对象抽象共用行为](oop/trait_objects.md)
    - [实现一种面向对象的设计模式](oop/implementing.md)

- [模式与匹配](Ch19_Patterns_and_Matching.md)
    - [可以使用模式的所有地方](patterns/all_places.md)
    - [可证伪性：模式是否会匹配失败](patterns/refutability.md)
    - [模式语法](patterns/syntax.md)

- [先进特性](Ch20_Advanced_Features.md)
    - [不安全的 Rust](advanced_features/unsafe.md)
    - [高级特质](advanced_features/adv_traits.md)
    - [高级类型](advanced_features/adv_types.md)
    - [高级函数与闭包](advanced_features/adv_fns_and_closures.md)
    - [宏，macro](advanced_features/macros.md)

- [最终项目：构建多线程的 Web 服务器](Ch21_Final_Project_Building_a_Multithreaded_Web_Server.md)
    - [构建单线程的 Web 服务器](final_project/single-threaded.md)
    - [从单线程服务器到多线程服务器](final_project/multithreaded.md)
    - [优雅关机与清理](final_project/graceful_shutdown.md)

- [附录](Appendix.md)
    - [A - 关键字](appendix/keywords.md)
    - [B - 运算符与符号](appendix/ops_and_symbols.md)
    - [C - 派生特质](appendix/derivable_traits.md)
    - [D - 有用的开发工具](appendix/dev_tools.md)
    - [E - 关于版本](appendix/editions.md)
    - [F - 本书译本](appendix/translations.md)
    - [G - Rust 是怎样构造出来的与 “每日 Rust”](appendix/releases.md)
    - [H - 译者补充：术语清单](appendix/terminology_list.md)
