Quick actions

cmd+k|ctrl+k

Navigation

Languages

Defer / Defer in depth / Essential Go

Snippet info

Language

Go

Visibility

public

Author

kkowalczyk

Created

2019-08-26T16:51:22Z

Updated

2019-08-26T16:51:22Z

package main

import "fmt"

func logNum(i int) {
	fmt.Printf("Num %d\n", i)
}

func main() {
	defer logNum(1)
	fmt.Println("First main statement")
	defer logNum(2)
	defer logNum(3)
	panic("panic occurred")

	fmt.Println("Last main statement") // not printed

	// not deferred since execution flow never reaches this line
	defer logNum(4)
}
INFO