From 9f2d2659a80595cc1252d326af3cd15cd74779f7 Mon Sep 17 00:00:00 2001 From: sunface Date: Fri, 7 Jan 2022 15:51:54 +0800 Subject: [PATCH] update toc --- book/contents/SUMMARY.md | 7 ++++--- .../{smart-pointer => circle-self-ref}/circle-reference.md | 2 -- book/contents/advance/circle-self-ref/intro.md | 6 ++++++ .../advance/{ => circle-self-ref}/self-referential.md | 0 4 files changed, 10 insertions(+), 5 deletions(-) rename book/contents/advance/{smart-pointer => circle-self-ref}/circle-reference.md (98%) create mode 100644 book/contents/advance/circle-self-ref/intro.md rename book/contents/advance/{ => circle-self-ref}/self-referential.md (100%) diff --git a/book/contents/SUMMARY.md b/book/contents/SUMMARY.md index fcc86e0a..da74759e 100644 --- a/book/contents/SUMMARY.md +++ b/book/contents/SUMMARY.md @@ -70,8 +70,9 @@ - [Drop释放资源](advance/smart-pointer/drop.md) - [Rc与Arc实现1vN所有权机制](advance/smart-pointer/rc-arc.md) - [Cell与RefCell内部可变性](advance/smart-pointer/cell-refcell.md) - - [Weak与循环引用](advance/smart-pointer/circle-reference.md) - - [结构体中的自引用](advance/self-referential.md)) + - [循环引用与自引用](advance/circle-self-ref/intro.md) + - [Weak与循环引用](advance/circle-self-ref/circle-reference.md) + - [结构体中的自引用](advance/circle-self-ref/self-referential.md)) - [多线程 todo](advance/multi-threads/intro.md) - [线程管理 todo](advance/multi-threads/thread.md) - [消息传递 todo](advance/multi-threads/message-passing.md) @@ -93,7 +94,7 @@ - [基本用法](advance/async/tokio/basic.md) - [异步消息流](advance/async/tokio/stream.md)) - [全局变量 todo](advance/global-variable.md) - + ## 专题内容,每个专题都配套一个小型项目进行实践 - [Rust最佳实践 doing](practice/intro.md) - [日常开发三方库精选](practice/third-party-libs.md) diff --git a/book/contents/advance/smart-pointer/circle-reference.md b/book/contents/advance/circle-self-ref/circle-reference.md similarity index 98% rename from book/contents/advance/smart-pointer/circle-reference.md rename to book/contents/advance/circle-self-ref/circle-reference.md index e4f8612b..eb0518b6 100644 --- a/book/contents/advance/smart-pointer/circle-reference.md +++ b/book/contents/advance/circle-self-ref/circle-reference.md @@ -1,6 +1,4 @@ # Weak与循环引用 -本文分为上下两篇,试图彻底解决困扰大家已久的循环引用和自引用问题,因此难度较高,但是非常值得深入阅读,它会让你对Rust的理解上升到一个新的境界。 - Rust的安全性是众所周知的,但是不代表它不会内存泄漏。一个典型的例子就是同时使用`Rc`和`RefCell`创建循环引用,最终这些引用的计数都无法被归零,因此`Rc`拥有的值也不会被释放清理。 ## 何为循环引用 diff --git a/book/contents/advance/circle-self-ref/intro.md b/book/contents/advance/circle-self-ref/intro.md new file mode 100644 index 00000000..21a32a42 --- /dev/null +++ b/book/contents/advance/circle-self-ref/intro.md @@ -0,0 +1,6 @@ +# 循环引用与自引用 +实现一个链表是学习各大编程语言的常用技巧,但是在Rust中实现链表意味着····Hell,是的,你没看错,Welcome to hell。 + +链表在Rust之所以这么难,完全是由于循环引用和自引用的问题引起的,这两个问题可以说综合了Rust的很多难点,难出了新高度,因此本书专门开辟一章,分为上下两篇,试图彻底解决这两个老大难。 + +本章难度较高,但是非常值得深入阅读,它会让你对Rust的理解上升到一个新的境界。 \ No newline at end of file diff --git a/book/contents/advance/self-referential.md b/book/contents/advance/circle-self-ref/self-referential.md similarity index 100% rename from book/contents/advance/self-referential.md rename to book/contents/advance/circle-self-ref/self-referential.md