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

go語言的init()方法如何使用

這篇“go語言的init()方法如何使用”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“go語言的init()方法如何使用”文章吧。

建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁設(shè)計(jì)師等,應(yīng)用各種網(wǎng)絡(luò)程序開發(fā)技術(shù)和網(wǎng)頁設(shè)計(jì)技術(shù)配合操作的協(xié)同工作。創(chuàng)新互聯(lián)建站專業(yè)提供成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站制作(企業(yè)站、響應(yīng)式網(wǎng)站建設(shè)、電商門戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗(yàn)的提升,我們力求做到極致!

在go語言中,init()方法用于包的初始化;初始化每個(gè)包后,會自動執(zhí)行init()函數(shù),并且執(zhí)行優(yōu)先級高于主函數(shù)的執(zhí)行優(yōu)先級。init()方法通常用于:1、變量初始化;2、檢查/修復(fù)狀態(tài);3、注冊器;4、運(yùn)行計(jì)算。init()函數(shù)在程序運(yùn)行時(shí),自動自動被調(diào)用執(zhí)行,不能在代碼中主動調(diào)用它。不同包的init函數(shù)按照包導(dǎo)入的依賴關(guān)系決定該初始化函數(shù)的執(zhí)行順序。

Go init函數(shù)的詳細(xì)說明

go語言中init函數(shù)用于包(package)的初始化,該函數(shù)是go語言的一個(gè)重要特性

程序執(zhí)行時(shí)導(dǎo)入包語句會自動觸發(fā)包內(nèi)部init()函數(shù)的調(diào)用。

初始化每個(gè)包后,會自動執(zhí)行init()函數(shù),并且執(zhí)行優(yōu)先級高于主函數(shù)的執(zhí)行優(yōu)先級。

需要注意的是:init()函數(shù)沒有參數(shù),也沒有返回值。

init函數(shù)通常用于:

  • 變量初始化

  • 檢查/修復(fù)狀態(tài)

  • 注冊器

  • 運(yùn)行計(jì)算

init()函數(shù)在程序運(yùn)行時(shí),自動自動被調(diào)用執(zhí)行,不能在代碼中主動調(diào)用它。

包初始化執(zhí)行的順序如下圖所示:

go語言的init()方法如何使用

結(jié)果是:

10
Hello 沙河

init()函數(shù)有下面的特點(diǎn):

  • init函數(shù)是用于程序執(zhí)行前做包的初始化的函數(shù),比如初始化包里的變量等

  • 每個(gè)包可以擁有多個(gè)init函數(shù)

  • 包的每個(gè)源文件也可以擁有多個(gè)init函數(shù)

  • 同一個(gè)包中多個(gè)init函數(shù)的執(zhí)行順序go語言沒有明確的定義(說明)

  • 不同包的init函數(shù)按照包導(dǎo)入的依賴關(guān)系決定該初始化函數(shù)的執(zhí)行順序

  • init函數(shù)不能被其他函數(shù)調(diào)用,而是在main函數(shù)執(zhí)行之前,自動被調(diào)用

包初始化

為了使用導(dǎo)入的程序包,必須首先對其進(jìn)行初始化。初始化始終在單個(gè)線程中執(zhí)行,并且以程序包依賴關(guān)系的順序執(zhí)行。這由Golang的運(yùn)行時(shí)系統(tǒng)控制,如下圖所示:

  • 初始化導(dǎo)入的包(遞歸導(dǎo)入)

  • 計(jì)算并為塊中聲明的變量分配初始值

  • 在包中執(zhí)行初始化函數(shù)

go語言的init()方法如何使用

initial.go

package main
import "fmt"
var _ int64=s()
func init(){
  fmt.Println("init function --->")
}
func s() int64{
  fmt.Println("function s() --->")
  return 1
}
func main(){
  fmt.Println("main --->")
}

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

function s() —>
init function —>
main —>

即使程序包被多次導(dǎo)入,初始化也只需要一次。

特性介紹

init函數(shù)不需要傳入?yún)?shù),也不需要返回任何值。與main相比,init沒有聲明,因此無法引用。

package main
import "fmt"
func init(){
  fmt.Println("init")
}
func main(){
  init()
}

編譯上述函數(shù)“undefined:init”時(shí)發(fā)生錯(cuò)誤。

每個(gè)源文件可以包含一個(gè)以上的init函數(shù),請記住,寫在每個(gè)源文件中的“行進(jìn)方式”只能包含一個(gè)init函數(shù),這有點(diǎn)不同,因此進(jìn)行下一個(gè)驗(yàn)證。

package main
import "fmt"
func init(){
  fmt.Println("init 1")
}
func init(){
  fmt.Println("init2")
}
func main(){
  fmt.Println("main")
}
/* 實(shí)施結(jié)果:
init1
init2
main */

從上面的示例中,您可以看到每個(gè)源文件可以包含多個(gè)init函數(shù)。

初始化函數(shù)的一個(gè)常見示例是設(shè)置初始表達(dá)式的值。

var precomputed=[20]float64{}
func init(){
  var current float64=1
  precomputed[0]=current
  for i:=1;i<len(precomputed);i++{
    precomputed[i]=precomputed[i-1]*1.2
  }
}

因?yàn)椴豢赡茉谏厦娴拇a(這是一條語句)中將for循環(huán)用作預(yù)先計(jì)算的值,所以可以使用init函數(shù)來解決此問題。

Go套件匯入規(guī)則的副作用

Go非常嚴(yán)格,不允許引用未使用的軟件包。但是有時(shí)您引用包只是為了調(diào)用init函數(shù)進(jìn)行一些初始化??諛?biāo)識符(即下劃線)的目的是解決此問題。

import _ "image/png"

以上就是關(guān)于“go語言的init()方法如何使用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前文章:go語言的init()方法如何使用
分享路徑:http://aaarwkj.com/article36/iipisg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)網(wǎng)站營銷、網(wǎng)站改版品牌網(wǎng)站設(shè)計(jì)、商城網(wǎng)站網(wǎng)站策劃

廣告

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

小程序開發(fā)
国产精品国产三级丝袜| 老熟妇仑乱换频一区二区| 在线观看免费国产b片| 国产av超爽剧情系列| 亚洲国产自拍精品视频| 视频二区国产欧美日韩| 哈昂~不要啊在线观看| 亚洲国产成人精品女人| 中文字幕人妻在线播放| 亚洲欧美国产另类综合| 亚洲激情视频在线视频| 肥胖老熟女一区二区三区| 亚洲日本一区二区高清在线| 宅男午夜一区二区三区| 麻豆精品新av中文字幕| 99久久中文字幕伊人| 欧美日韩黄色在线观看| 欧美另类亚洲综合久青草| 亚洲成av人片青草影院| 在线观看不卡的黄色地址| 久久偷拍女生厕所尿尿| 国产精品国产自产拍高清| 国产毛毛片一区二区三区| 激情亚洲欧美日韩精品| 香蕉欧美在线视频播放| 国产伦国产一区二区三区在线观看| 黄色亚洲大片免费在线观看| 国产蜜臀视频在线播放| 日韩欧美亚洲综合久久精品| 免费人成网站视频在线观看不卡| 国产精品一级二区三区| 欧美一级特黄大片免色| 色伊人久久综合中文字幕| 久久热这里只有视频精品| 特级特色生活片免费看| 日韩免费视频一区二区三区免费| 国产三级久久精品三级91| 丰满的少妇一区二区三区免费观看 | 亚洲日本va午夜中文字幕一区| 国产午夜激情自拍视频| 午夜激情在线观看网页|