pull/141/head
sunface 3 years ago
parent fbbd8adb36
commit 9f2d2659a8

@ -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)

@ -1,6 +1,4 @@
# Weak与循环引用
本文分为上下两篇试图彻底解决困扰大家已久的循环引用和自引用问题因此难度较高但是非常值得深入阅读它会让你对Rust的理解上升到一个新的境界。
Rust的安全性是众所周知的但是不代表它不会内存泄漏。一个典型的例子就是同时使用`Rc<T>`和`RefCell<T>`创建循环引用,最终这些引用的计数都无法被归零,因此`Rc<T>`拥有的值也不会被释放清理。
## 何为循环引用

@ -0,0 +1,6 @@
# 循环引用与自引用
实现一个链表是学习各大编程语言的常用技巧但是在Rust中实现链表意味着····Hell是的你没看错Welcome to hell。
链表在Rust之所以这么难完全是由于循环引用和自引用的问题引起的这两个问题可以说综合了Rust的很多难点难出了新高度因此本书专门开辟一章分为上下两篇试图彻底解决这两个老大难。
本章难度较高但是非常值得深入阅读它会让你对Rust的理解上升到一个新的境界。
Loading…
Cancel
Save