Concept Flow - Why defer is used
Start function
Execute code before defer
Register defer statement
Execute remaining code
Function about to return
Run deferred calls in LIFO order
Function returns
The function runs normally, but defer statements are saved and run just before the function returns, in reverse order.