Scene
struct持有该程序的资源,并引用了场景的资源,并且也由现场拥有。因此资源包裹在
Object
中。 rust游乐场
当程序结束时,我可以自定义清洁资源要做,我不能只是让所有内容都放在范围内。 我在
Rc<>
Object
Scene
drop()
&mut mesh
drop()
Mesh
Rc
不会减少计数(编译器甚至警告它什么都不做),但是如果我用自有的呼叫
Rc::drop()
&mut self
Rc::drop()
&mut self
我的问题是:
Rc::drop
如果什么也不做?
从其所有者或(更常见的是)放弃所有者本身。如果什么也不做?thy为什么
drop
&mut
是内部协议的一部分,您无法明确称呼它:
Https://doc.rust-lang.org/stable/error_codes/e0040.html当您打电话
drop
并将其传递给
pub fn drop<T>(_x: T) {}
时,您将删除可变的参考,这无济于事。 Rc
功能是不典型的,这实际上是
如果您只能减少nilly野的重新数,Rust会发现自己活着
Drop
对物体,也就是悬挂的指针。
(来自评论)由于我还有其他资源必须明确破坏(与C代码...相互作用),其中一些需要在网格之前释放,然后再释放一些。 您需要用自己的and Impl,而不是您想在这里做的任何事情来将其作为主资源进行重新审议。或将彼此的资源重新为自己的资源,并提及其自己的依赖性(因此,下降顺序自然是正确的)。