This is a creation in Article, where the information may have evolved or changed.
Golang's defer elegant and concise, is one of the highlights of Golang. Defer does not execute immediately at the time of Declaration, but after the function return, executes each defer in turn, in order to release resources, clean up data, log logs, exception handling, and so on.
Here's an example:
Package Mainimport "FMT" func defertest (number int) int {defer func () {number++fmt. Println ("Three:", Number)} () defer func () {number++fmt. Println ("Both:", Number)} () defer func () {number++fmt. Println ("One:", Number)} () return Number}func main () {FMT. Println ("function return value:", Defertest (0))}
The result of the above code printing is:
One:1two:2three:3 function return value: 0
Defer has an important feature, even if the function throws an exception, defer will be executed. This prevents the resource from being freed because of an error in the program.