defer func(參數){}
- 參考代碼
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
}
- 輸出結果
================打印順序===============
10 1 2 3
20 0 2 2
a= 0 b= 1
2 0 2 2
1 1 3 4
- 結果分析
- defer運行特點
- 在return之后執行
- 先賦值后放入堆棧
- defer運行特點