Go Q & A


What is the defer keyword used for in Go?

In Go, the defer keyword is used to schedule a function call to be executed when the surrounding function returns. It allows developers to defer the execution of a function until the surrounding function’s execution completes, regardless of how it exits—either normally or due to a panic.


The defer keyword is commonly used for tasks such as releasing resources, closing files, and unlocking mutexes. It helps ensure that cleanup operations are performed reliably, even in the presence of errors or unexpected conditions.


When a function with deferred calls returns, the deferred functions are executed in Last In, First Out (LIFO) order. This means that the most recently deferred function is executed first, followed by the next most recent, and so on. The defer keyword promotes clean and idiomatic Go code by encapsulating resource management and cleanup logic within the appropriate scope.

Previously at
Flag Argentina
time icon
Over 5 years of experience in Golang. Led the design and implementation of a distributed system and platform for building conversational chatbots.