使用defer清理资源,比如文件或锁
Bad
p.Lock()
if p.count < 10 {
p.Unlock()
return p.count
}
p.count++
newCount := p.count
p.Unlock()
return newCount
//由于多个返回语句,容易遗漏unlocks
easy to miss unlocks due to multiple returns
Good
p.Lock()
defer p.Unlock()
if p.count < 10 {
return p.count
}
p.count++
return p.count
// 更可读
Defer拥有非常小的开销,只有在您可以证明您的函数执行在纳秒数量级时,才应该避免使用Defer。使用延迟所带来的可读性优势是值得的,因为使用它们的成本非常低。
尤其适用于那些不仅仅是简单内存访问的较大的方法,在这些方法中其他计算的资源消耗远超过defer。
提升代码可读性:使用 defer 锁资源管理的最佳实践
本文探讨了如何通过 defer 函数来优雅地管理文件锁和资源释放,特别是在多返回语句场景中避免遗漏解锁。作者强调了在代码可读性与性能之间找到平衡的重要性,特别适用于计算密集型方法和大型方法中资源消耗的管理。
1040

被折叠的 条评论
为什么被折叠?



