ホームページ >バックエンド開発 >Golang >Go の `init()` 関数はいつ、どのように実行されますか?

Go の `init()` 関数はいつ、どのように実行されますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-24 10:26:16437ブラウズ

When and How Does Go's `init()` Function Execute?

init() 関数はいつ実行されますか?

init() 関数は、パッケージの初期化中に実行される Go の特別な関数です。これは通常、パッケージの main() 関数では処理できない初期化タスクを実行するために使用されます。

Go ドキュメントによると、init() 関数はすべての変数宣言のに呼び出されます。パッケージ内の初期化子が評価されています。これは、init() 関数が実行される前に、すべてのグローバル変数とそのイニシャライザが処理されていることを意味します。

次の例は、この動作を示しています。

var WhatIsThe = AnswerToLife()

func AnswerToLife() int { // 1
    return 42
}

func init() { // 2
    WhatIsThe = 0
}

func main() { // 3
    if WhatIsThe == 0 {
        fmt.Println("It's all a lie.")
    }
}

この例では、AnswerToLife () 関数 (1) は、init() 関数 (2) が呼び出される前に実行されることが保証されています。 init() 関数は、main() 関数 (3) が呼び出される前に実行されることが保証されます。

init() 関数は、main() があるかどうかに関係なく、常に呼び出されることに注意してください。関数。したがって、init() 関数を持つパッケージをインポートすると、それが実行されます。

以上がGo の `init()` 関数はいつ、どのように実行されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。