zc58778560 发表于 2021-03-26 08:29
Tags:Rc,原理
1、标准库的Rc有没有使用编译器的“黑魔法”?(即编译器对Rc特殊对待)
2、Rc的实现原理是什么,为什么标准库实现要那么弯弯绕绕?
3、如何写一个自己实现的版本?
漏裸指针,cell计数。Clone计数加Drop计数减。Drop最后一个计数时回收裸指针。
https://www.youtube.com/watch?v=8O0Nt9qY_vo&t=4209s 看这个 大佬写了个Rc
有兴趣有时间直接研读源代码,rust所有实现都是公开的。看源代码可以从docs.rs看,也可以在VSCode里按Ctrl+鼠标左键调转到源代码。
建议这种问题应该是做了一些功课后在输出一些背景知识后的自然引申问题,而不是像这种rc的原理是什么,原理不能google吗?系统性的知识应该自己研究或者去学校学习。
评论区
写评论漏裸指针,cell计数。Clone计数加Drop计数减。Drop最后一个计数时回收裸指针。
https://www.youtube.com/watch?v=8O0Nt9qY_vo&t=4209s 看这个 大佬写了个Rc
有兴趣有时间直接研读源代码,rust所有实现都是公开的。看源代码可以从docs.rs看,也可以在VSCode里按Ctrl+鼠标左键调转到源代码。
建议这种问题应该是做了一些功课后在输出一些背景知识后的自然引申问题,而不是像这种rc的原理是什么,原理不能google吗?系统性的知识应该自己研究或者去学校学习。