// PREDICT what f() and g() return, and the order of the deferred prints. package main import "fmt" func f() (x int) { defer func() { x++ }() return 5 } func g() int { x := 5 defer func() { x++ }() return x } func main() { fmt.Println(f()) fmt.Println(g()) for i := 0; i < 3; i++ { defer fmt.Println("deferred:", i) // when and in what order? } }