成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Go 語言中 defer 使用時有哪些陷阱?

開發 前端
本文主要介紹在使用 defer? 語句時可能會遇到的陷阱。分別是 defer? 語句不可以在 return? 語句之后;defer 語句執行的匿名函數,匿名函數的參數會被預先處理。

01 、介紹

defer 的使用方式是在其后緊跟一個函數調用或方法調用,確保在其所在的函數體返回之前執行其調用的函數或方法。

在 Go 語言中,defer 一般用于資源釋放,或使用 defer 調用一個匿名函數,在匿名函數中使用 recover() 處理異常 panic。

在使用 defer 時,也很容易遇到陷阱,本文我們介紹使用 defer 時有哪些陷阱。

02、 defer 陷阱

defer 語句不可以在 return 語句之后。

示例代碼:

func main() {
 name := GetUserName("phper")
 fmt.Printf("name:%s\n", name)
 if name != "gopher" {
  return
 }
 defer fmt.Println("this is a defer call")
}

func GetUserName(name string) string {
 return name
}

輸出結果:

name:phper

閱讀上面這段代碼,我們在 return 語句之后執行 defer 語句,通過輸出結果可以發現 defer 語句調用未執行。

雖然 defer 可以在函數體中的任意位置,我們也是需要特別注意使用 defer 的位置是否可以執行。

defer 語句執行匿名函數,參數預處理。

示例代碼:

func main() {
 var count int64
 defer func(data int64) {
  fmt.Println("defer:", data)
 }(count + 1)
 count = 100
 fmt.Println("main:", count)
}

輸出結果:

main: 100
defer: 1

閱讀上面這段代碼,首先我們定義一個類型為 int64 的變量 count,然后使用 defer 語句執行一個匿名函數,匿名函數傳遞參數為 count + 1,最終 main 函數輸出 100,defer 執行的匿名函數輸出 1。

因為在執行 defer 語句時,執行了 count + 1,并先將其存儲,等到 defer 所在的函數體 main 執行完,再執行 defer 語句調用的匿名函數的函數體中的代碼。

03 、總結

本文主要介紹在使用 defer 語句時可能會遇到的陷阱。分別是 defer 語句不可以在 return 語句之后;defer 語句執行的匿名函數,匿名函數的參數會被預先處理。

讀者朋友們在使用 Go 語言的 defer 語句時,還遇到過哪些陷阱?

責任編輯:武曉燕 來源: Golang語言開發棧
相關推薦

2013-06-25 09:52:32

GoGo語言Go編程

2021-06-07 23:19:44

Golang語言 Defer

2023-07-03 00:44:26

Go語言MySQL

2024-04-01 00:02:56

Go語言代碼

2021-07-08 23:53:44

Go語言拷貝

2024-05-10 08:36:40

Go語言對象

2023-10-09 07:14:42

panicGo語言

2023-06-26 00:03:55

Go語言類型

2010-08-06 09:25:19

重定向恢復DB2

2014-04-09 09:32:24

Go并發

2011-07-14 10:23:33

C語言

2024-04-07 11:33:02

Go逃逸分析

2021-07-15 23:18:48

Go語言并發

2023-12-21 07:09:32

Go語言任務

2023-01-12 08:52:50

GoroutinesGo語言

2025-02-06 13:19:31

RustPin系統

2023-01-30 15:41:10

Channel控制并發

2023-11-30 08:09:02

Go語言

2022-07-19 12:25:29

Go

2023-07-29 15:03:29

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美高清性xxxxhdvideosex | 欧美成ee人免费视频 | 精品视频在线一区 | 久久精品二区亚洲w码 | av永久免费 | 黄频视频 | 免费二区| 91精品免费 | 在线观看国产wwwa级羞羞视频 | 精品国产一区二区三区观看不卡 | 日本在线一区二区三区 | 午夜不卡福利视频 | 色综合天天综合网国产成人网 | 国产成视频在线观看 | 欧美簧片 | 成人国产在线视频 | av高清毛片 | 91成人免费观看 | 激情三区 | 国产精品二区三区在线观看 | 麻豆91精品91久久久 | 国产精品国产 | 中文字幕在线欧美 | 成人免费看黄 | 在线免费黄色小视频 | 深夜福利影院 | 91亚洲免费 | 成人在线观看亚洲 | 最新日韩av | 97精品国产一区二区三区 | 美女高潮网站 | 米奇7777狠狠狠狠视频 | 成在线人视频免费视频 | 日本韩国欧美在线观看 | 羞羞视频免费观 | 免费观看的av毛片的网站 | 欧美激情精品久久久久 | 羞羞的视频在线看 | 成人午夜精品 | 黄色一级片视频 | 成人在线观看中文字幕 |