defer func (parameter) {}
- Reference Code
func main(){
fmt.Println("================打印顺序===============")
a:=1
b:=2
defer calc("1",a,calc("10",a,b))
a=0
defer calc("2",a,calc("20",a,b))
b=1
fmt.Println("a=",a,"b=",b)
}
func calc(index string, a,b int)int{
ret := a+b
fmt.Println(index,a,b,ret)
return ret
}
- Output
================打印顺序===============
10 1 2 3
20 0 2 2
a= 0 b= 1
2 0 2 2
1 1 3 4
- Result analysis
- defer operating characteristics
- Executed after return
- After the first assignment on the stack
- defer operating characteristics