欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Golang函數(shù)中defer的作用以及細(xì)節(jié)-創(chuàng)新互聯(lián)

defer是什么?

在錫林浩特等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)營(yíng)銷推廣,成都外貿(mào)網(wǎng)站建設(shè),錫林浩特網(wǎng)站建設(shè)費(fèi)用合理。

   在Go語(yǔ)言中,可以使用關(guān)鍵字defer向函數(shù)注冊(cè)退出調(diào)用,即主函數(shù)退出時(shí),defer后的函數(shù)才被調(diào)用。defer語(yǔ)句的作用是不管程序是否出現(xiàn)異常,均在函數(shù)退出時(shí)自動(dòng)執(zhí)行相關(guān)代碼。

defer的用途

在函數(shù)中,程序員經(jīng)常需要?jiǎng)?chuàng)建資源(比如:數(shù)據(jù)庫(kù)連接、文件句柄、鎖等) ,為了在函數(shù)執(zhí)行完 畢后,及時(shí)的釋放資源,Go 的設(shè)計(jì)者提供 defer (延時(shí)機(jī)制)。

package main

import "fmt"
//defer  可以向函數(shù)注冊(cè)、退出調(diào)用,即當(dāng)主調(diào)函數(shù)退出時(shí),defer后的函數(shù)才被調(diào)用,
// defer語(yǔ)句的作用就是不管程序是否出現(xiàn)異常,均在函數(shù)退出是自動(dòng)執(zhí)行相關(guān)代碼

func sum(n1 int,n2 int) int{
   //當(dāng)執(zhí)行到defer時(shí),暫時(shí)不執(zhí)行,會(huì)將defer后面的語(yǔ)句壓入到獨(dú)立的(defer棧)
   //當(dāng)函數(shù)執(zhí)行完畢后,再?gòu)膁efer棧 安裝先入后出的方式出棧執(zhí)行
   //defer 將語(yǔ)句放入到棧時(shí),也會(huì)將相關(guān)的值拷貝同時(shí)入棧***
   defer  fmt.Println("ok1 n1=",n1)//defer3   ok3   n1  20
   defer  fmt.Println("ok2 n2=",n2) //defer2  ok2 n2  10
   //n1 ++
   //n2 ++

    res := n1 + n2
    fmt.Println("ok3 res=",res)//1.ok1
    return  res
}
func  main()  {
   res :=sum(20,10)
   fmt.Println("res=",res)

}

執(zhí)行結(jié)果

Golang函數(shù)中defer的作用以及細(xì)節(jié)

結(jié)果分析:

 從執(zhí)行結(jié)果來(lái)看,res=30 是最先開(kāi)始執(zhí)行的部分,接下來(lái)是第二個(gè)defer n2為10 最后執(zhí)行的是第一個(gè)defer n1為20 ,即當(dāng)執(zhí)行到defer時(shí),暫時(shí)不執(zhí)行,會(huì)將defer后面的語(yǔ)句壓入到獨(dú)立的(defer棧),當(dāng)函數(shù)執(zhí)行完畢后,再?gòu)膁efer棧,按照(先入后出)的方式出棧執(zhí)行。

注意事項(xiàng):

1) 當(dāng) go 執(zhí)行到一個(gè) defer 時(shí),不會(huì)立即執(zhí)行 defer 后的語(yǔ)句,而是將 defer 后的語(yǔ)句壓入到一個(gè)棧 中[我為了講課方便,暫時(shí)稱該棧為 defer 棧], 然后繼續(xù)執(zhí)行函數(shù)下一個(gè)語(yǔ)句。

2) 當(dāng)函數(shù)執(zhí)行完畢后,在從 defer 棧中,依次從棧頂取出語(yǔ)句執(zhí)行(注:遵守棧 先入后出的機(jī)制),

3) 在 defer 將語(yǔ)句放入到棧時(shí),也會(huì)將相關(guān)的值拷貝同時(shí)入棧

package main

import "fmt"
//defer  可以向函數(shù)注冊(cè)、退出調(diào)用,即當(dāng)主調(diào)函數(shù)退出時(shí),defer后的函數(shù)才被調(diào)用,
// defer語(yǔ)句的作用就是不管程序是否出現(xiàn)異常,均在函數(shù)退出是自動(dòng)執(zhí)行相關(guān)代碼

func sum(n1 int,n2 int) int{
   //當(dāng)執(zhí)行到defer時(shí),暫時(shí)不執(zhí)行,會(huì)將defer后面的語(yǔ)句壓入到獨(dú)立的(defer棧)
   //當(dāng)函數(shù)執(zhí)行完畢后,再?gòu)膁efer棧 安裝先入后出的方式出棧執(zhí)行
   //defer 將語(yǔ)句放入到棧時(shí),也會(huì)將相關(guān)的值拷貝同時(shí)入棧***
   defer  fmt.Println("ok1 n1=",n1)//defer3   ok3   n1  20
   defer  fmt.Println("ok2 n2=",n2) //defer2  ok2 n2  10
   n1 ++
   n2 ++

    res := n1 + n2
    fmt.Println("ok3 res=",res)//1.ok1
    return  res
}
func  main()  {
   res :=sum(20,10)
   fmt.Println("res=",res)

}

執(zhí)行結(jié)果:

Golang函數(shù)中defer的作用以及細(xì)節(jié)

從結(jié)果看出n1++ ,n2++兩個(gè)的值未入相關(guān)defer的棧,即defer 將語(yǔ)句放入到棧時(shí),也會(huì)將相關(guān)的值拷貝同時(shí)入棧。

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買(mǎi)多久送多久。

文章題目:Golang函數(shù)中defer的作用以及細(xì)節(jié)-創(chuàng)新互聯(lián)
URL分享:http://aaarwkj.com/article8/jcoip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站定制網(wǎng)站、網(wǎng)站收錄、搜索引擎優(yōu)化企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
亚洲欧美熟妇欲乱又伦| 绯色av一区二区三区蜜臀| 久久亚洲精品中文字幕馆| 中文字幕国产精品专区| 日韩在线观看精品亚洲| 99蜜桃臀成人美女视频| 日韩美女后入式在线视频| 色婷婷激情一区二区三区| 亚洲最大成人综合福利网| 欧美一区二区三区一级| 丰满人妻一区二三区av| 女优一区二区三区蜜桃| 日本一区二区高清在线观看| 国产剧情av专业在线观看| 扒开少妇毛茸茸的大荫萍蒂| 日本成人精品二区在线观看| 久国产精品韩国三级视频| 亚洲av天堂在线播放| 91大神黑丝美女洗澡| 国产一区二区精品性浆| 成年人黄色免费网站在线观看| 亚洲国产欧美日韩在线| 亚洲欧美极品一区色婷婷| 国产一区二区三区日本精品| 中文字幕高清一区二区三区| 亚洲国产av福利久久| 欧美日韩免费爱爱视频| 精品妇女一区二区三区| 欧美老熟妇精品一区二区| 午夜精品久久99蜜桃| 精品人妻一区二区在线99| 老色鬼久久亚洲av综合| 国产女同av一区二区三区 | 亚洲精品熟女国产中文| 欧美精品一区二区三区在线| 婷婷亚洲悠悠色悠在线| 久久夜色一区二区三区| 精品国产一区二区日韩91| 欧美午夜福利在线电影| 美女张开腿让男人插进去 | 日韩欧美国产麻豆91在线精品|