defer for Resource Cleanup
Close files and release resources reliably.
The Cleanup Problem
Resources like files, locks, or connections must be released. Forgetting to release on some path causes leaks.
func work() {
print("acquire resource")
print("use resource")
print("release resource")
}
work()defer Guarantees Release
Putting the release in a defer guarantees it runs no matter how the function exits.
func work() {
print("acquire resource")
defer { print("release resource") }
print("use resource")
}
work()All lessons in this course
- How defer Works
- Multiple defer Blocks Ordering
- defer for Resource Cleanup
- defer with Errors and Early Returns