package main
import "fmt"
func a() int{
var i int
defer func(){
i++
fmt.Println("defer2:",i)
}()
defer func(){
i++
fmt.Println("defer1:",i)
}()
return i // 返回i的副本
}
func b()(i int){
defer func(){
i++
fmt.Println("defer2:",i)
}()
defer func(){
i++
fmt.Println("defer1:", i)
}()
return i
}
func main() {
fmt.Println(a())
fmt.Println("-------")
fmt.Println(b())
}
defer1: 1
defer2: 2
0
-------
defer1: 1
defer2: 2
2