Maison > développement back-end > Golang > Quand et comment la fonction `init()` de Go s'exécute-t-elle ?

Quand et comment la fonction `init()` de Go s'exécute-t-elle ?

Linda Hamilton
Libérer: 2024-12-24 10:26:16
original
428 Les gens l'ont consulté

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

Quand la fonction init() s'exécute-t-elle ?

La fonction init() est une fonction spéciale dans Go qui s'exécute lors de l'initialisation du package. Elle est généralement utilisée pour effectuer des tâches d'initialisation qui ne peuvent pas être gérées par la fonction main() du package.

Selon la documentation Go, la fonction init() est appelée après toutes les déclarations de variables dans le package ont évalué leurs initialiseurs. Cela signifie que toutes les variables globales et leurs initialiseurs auront été traités avant l'exécution de la fonction init().

L'exemple suivant illustre ce comportement :

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.")
    }
}
Copier après la connexion

Dans cet exemple, AnswerToLife () la fonction (1) est garantie de s'exécuter avant l'appel de la fonction init() (2). L'exécution de la fonction init() est alors garantie avant l'appel de la fonction main() (3).

Notez que la fonction init() est toujours appelée, qu'il y ait ou non une fonction main(). fonction. Par conséquent, si vous importez un package doté d'une fonction init(), il sera exécuté.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal