热门话题
#
Bonk 生态迷因币展现强韧势头
#
有消息称 Pump.fun 计划 40 亿估值发币,引发市场猜测
#
Solana 新代币发射平台 Boop.Fun 风头正劲
Zig 提示:`errdefer comptime unreachable;` 将确保从那时起在编译时没有任何事情可以失败。这是一个极其重要的模式,因为 `errdefer`(错误时清理)通常依赖于世界的特定状态,而这会进行断言。
示例用例:我正在开发一个功能,它接收一些数据,设置一堆缓冲区,然后交换这些缓冲区。我在新构建的缓冲区上撒了一堆 `errdefer` 来进行清理。
但是在我交换缓冲区之后,这些 `errdefer` 现在是错误的。它们会导致最终的双重释放。
所以,就在我交换缓冲区的时候,我放了一个 `errdefer comptime unreachable` 和一个注释,解释为什么在那之后重要的错误不能发生。
如果我在那之后需要错误,它将迫使我重新考虑如何进行错误清理。非常好!

热门
排行
收藏
