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
Linda Hamiltonoriginal
2024-12-24 10:26:16437parcourir

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.")
    }
}

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!

Déclaration:
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