defer func(參數){}


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之后執行
      • 先賦值后放入堆棧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM