本篇文章是对学习Rust设计模式3-5中最后一部分错误的纠正,纠正后的笔记如下。
1、通常做法:
Rust中,通常在析构函数中运行退出前必须运行的代码。
2、示例:
3、需要注意的问题:
即使程序崩溃,仍然会运行panic函数;但是如果drop函数中存在无线循环或者运行函数退出前崩溃,则不会运行drop函数剩下的部分。示例如下:
上述代码运行如下:
可以看到panic发生后,A的drop函数仍然会运行,但是因为在A的drop函数中也发送了panic,所以第六行的“A exit2”不会打印。
领取专属 10元无门槛券
私享最新 技术干货