Drop 深入
前面讲过 Drop 的第一层作用:值离开作用域时自动释放资源。
这已经能替代很多 C 里的 goto cleanup。但真正在库代码里包装文件句柄、连接、锁、临时目录或 FFI handle 时,只知道“离开作用域会释放”还不够。
前面讲过 Drop 的第一层作用:值离开作用域时自动释放资源。
这已经能替代很多 C 里的 goto cleanup。但真正在库代码里包装文件句柄、连接、锁、临时目录或 FFI handle 时,只知道“离开作用域会释放”还不够。
C 代码里,资源释放通常是靠人维护的。
打开文件要 fclose,申请内存要 free,拿到锁要解锁,初始化了对象就要在每条错误路径里销毁。函数短时还好,资源一多,最常见的结构就是 goto cleanup。