本篇文章為大家展示了Go語言中init函數(shù)的作用是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),宜豐企業(yè)網(wǎng)站建設(shè),宜豐品牌網(wǎng)站建設(shè),網(wǎng)站定制,宜豐網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,宜豐網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
Go語言有一個特殊的函數(shù)init,先于main函數(shù)執(zhí)行,實現(xiàn)包級別的一些初始化操作。
對于init 函數(shù)來說:每個包可以包含任意多個 init 函數(shù),這些函數(shù)都會在程序執(zhí)行開始的時候被調(diào)用。所有被編譯器發(fā)現(xiàn)的 init 函數(shù)都會安排在 main 函數(shù)之前執(zhí)行。init 函數(shù)用在設(shè)置包、初始化變量或其他要在程序運行前優(yōu)先完成的引導(dǎo)工作。
init函數(shù)的主要作用:1)初始化不能采用初始化表達(dá)式初始化的變量。2)程序運行前的注冊。3)實現(xiàn)sync.Once功能。(備注:init函數(shù)沒有輸入?yún)?shù)、返回值。)
在Go語言中,執(zhí)行順序為:初始化變量--》init函數(shù)--》main函數(shù)

結(jié)果分析:通過輸出結(jié)果,我們可以看到,Go語言的程序,在開始運行之前,首先執(zhí)行的是變量初始化操作,然后是init()函數(shù),最后是main()函數(shù)。
Go語言中,一個包文件和一個.go文件中可以實現(xiàn)多個init()函數(shù),也不會編譯出錯。


結(jié)果分析:通過輸出結(jié)果,我們能夠看出同一個包中的init函數(shù)是可以實現(xiàn)多個的,理論上他們的執(zhí)行順序可以不同,但是筆者執(zhí)行了5次都是上面的結(jié)果,不知道是不是編譯順序的原因。
如題,如下圖所示:

(轉(zhuǎn)載:https://blog.csdn.net/benben_2015/article/details/79486077)
例子如下所示:


結(jié)果分析:包的依賴關(guān)系 main->b->a, 所以輸出結(jié)果的init函數(shù)執(zhí)行順序是,先執(zhí)行a中的,再執(zhí)行b中的,最后執(zhí)行c中的。
Go要求非常嚴(yán)格,不允許引用不使用的包,不過我們可以采用下面的格式(import _ pkg)來引用,只是用它來執(zhí)行對應(yīng)包的init函數(shù)。
將上面c.go中的import "./b" 替換成import _ "./b", 并將main()中的b.B()刪除,執(zhí)行結(jié)果如下所示。

上述內(nèi)容就是Go語言中init函數(shù)的作用是什么,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享名稱:Go語言中init函數(shù)的作用是什么
網(wǎng)頁鏈接:http://www.chinadenli.net/article36/iigspg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、網(wǎng)站營銷、小程序開發(fā)、移動網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、網(wǎng)頁設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)