Go の Init(): 正確な説明
Go プログラミング言語を使用する場合、init() がどのように動作するかを理解することが不可欠です。機能が動作します。この関数は、パッケージとその依存関係の初期化プロセスで重要な役割を果たします。
Effective 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() が init() の前に実行され、init() がmain() の前に実行されます。さらに、すべてのパッケージの依存関係と変数が初期化された後、init() が変数値の設定などのすべての初期化ロジックを実行することを強調しています。
init() は常に呼び出されることに注意することが重要です。 main() 関数があるかどうかは関係ありません。したがって、init() 関数を含むパッケージをインポートすると、その関数が実行されます。さらに、パッケージには複数の init() 関数を含めることができ、それらはファイル内に出現する順序で実行されます。
以上がGo の `init()` 関数はパッケージの初期化でどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。