在阅读有关 Drop
特性时,我发现Rust的drop
方法与C++中的析构函数之间有很多相似之处。两者有什么区别?
最佳答案
在实践中,没有明显的区别。两者均在适当时用于清除类型的资源。
是的。实质上,编译器会为程序员没有自动实现的任何类型自动实现Drop
。这种自动实现只是简单地依次为每个成员变量调用drop
。
如果您分配Rust不知道的资源,例如直接从分配器分配内存,Rust将不会知道需要删除返回值或如何删除返回值。那就是您直接实现Drop
的时候。
也可以看看:
Drop
Trait 关于c++ - Rust的Drop和C++的析构函数之间有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53324276/