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

golang中的init函數(shù)-創(chuàng)新互聯(lián)

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

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)焉耆免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了超過(guò)千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

有下面的特征:

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

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

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

4 同一個(gè)包中多個(gè)init函數(shù)的執(zhí)行順序go語(yǔ)言沒(méi)有明確的定義(說(shuō)明)

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

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

下面這個(gè)示例摘自《the way to go》,os差異在應(yīng)用程序初始化時(shí)被隱藏掉了,

var prompt = "Enter a digit, e.g. 3 " + "or %s to quit."

func init() {
    if runtime.GOOS == "windows" {
        prompt = fmt.Sprintf(prompt, "Ctrl+Z, Enter")
    } else { // Unix-like
        prompt = fmt.Sprintf(prompt, "Ctrl+D")
    }
}

下面的兩個(gè)go文件演示了:

1 一個(gè)package或者是go文件可以包含多個(gè)init函數(shù),

2 init函數(shù)是在main函數(shù)之前執(zhí)行的,

3 init函數(shù)被自動(dòng)調(diào)用,不能在其他函數(shù)中調(diào)用,顯式調(diào)用會(huì)報(bào)該函數(shù)未定義

gprog.go代碼

package main

import (
    "fmt"
)

// the other init function in this go source file
func init() {
    fmt.Println("do in init")
}

func main() {
    fmt.Println("do in main")
}

func testf() {
    fmt.Println("do in testf")
    //if uncomment the next statment, then go build give error message : .\gprog.go:19: undefined: init
    //init()
}

ginit1.go代碼,注意這個(gè)源文件中有兩個(gè)init函數(shù)

package main

import (
    "fmt"
)

// the first init function in this go source file
func init() {
    fmt.Println("do in init1")
}

// the second init function in this go source file
func init() {
    fmt.Println("do in init2")
}

編譯上面兩個(gè)文件:go build gprog.go ginit1.go

編譯之后執(zhí)行g(shù)prog.exe后的結(jié)果表明,gprog.go中的init函數(shù)先執(zhí)行,然后執(zhí)行了ginit1.go中的兩個(gè)init函數(shù),然后才執(zhí)行main函數(shù)。

E:\opensource\go\prj\hellogo>gprog.exe
do in init
do in init1
do in init2
do in main

注:《the way to go》中(P70)有下面紅色一句描述,意思是說(shuō)一個(gè)go源文件只能有一個(gè)init函數(shù),

但是上面的ginit1.go中的兩個(gè)init函數(shù)編譯運(yùn)行后都正常執(zhí)行了,

因此這句話應(yīng)該是筆誤。

4.4.5 Init-functions
Apart from global declaration with initialization, variables can also be initialized in an init()-function.
This is a special function with the name init() which cannot be called, but is executed automatically
before the main() function in package main or at the start of the import of the package that
contains it.
Every source file can contain only 1 init()-function. Initialization is always single-threaded and
package dependency guarantees correct execution order.

以上就是go語(yǔ)言的init函數(shù)詳解的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!

文章標(biāo)題:golang中的init函數(shù)-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://aaarwkj.com/article38/dijgsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、Google、網(wǎng)頁(yè)設(shè)計(jì)公司、ChatGPT軟件開發(fā)、企業(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)

微信小程序開發(fā)
欧美a级黄片免费在线观看| 国产美女冒白浆视频免费| 国产精品久久午夜伦鲁鲁| 日韩精品色av一区二区| 麻豆午夜福利在线播放| 免费看男人添女人无遮挡| 亚洲免费小视频在线观看| 91蜜臀视频在线播放| 神马影院在线观看午夜| 久久久之久亚州精品露出| 美女床上激情啪啪网页| 亚洲福利网址一二三区| 另类欧美亚洲中文在线综合| 清纯唯美校园春色亚洲激情| a一级成人插少妇的逼| 欧美日韩国产福利在线观看| 欧美日韩黄色人人小视频| 亚洲av中文久久精品国内| 国产欧美日韩亚洲综合在线| 亚洲少妇熟女一区二区三区| 一区二区三区免费视频少妇| 在线观看成人激情视频| 欧美一区二区黑人巨大| 我想看日韩一级黄色片| 国产三级在线观看91| 国内传媒视频免费观看| 色呦呦视频在线免费观看| 久久偷拍一区二区三区| 自偷自拍亚洲综合精品| 99精品国产一区二区青青性色| 亚洲一区麻豆文化传媒| 中文字幕av在线有码| 亚洲综合精品久久久一区| 午夜福利视频在线一区| 四虎影视国产精品久久| 色花堂国产精品第二页| 激情亚洲欧美日韩精品| 日本一区二区免费视频| 欧美日韩精品人妻二区| 99热这里只有精品中文| 午夜精品久久久免费视频|