Maison >développement back-end >Golang >Comment fonctionne la fonction `init()` de Go dans l'initialisation du package ?
Init() dans Go : une explication précise
Lorsque vous travaillez avec le langage de programmation Go, il est essentiel de comprendre comment init() fonction fonctionne. Cette fonction joue un rôle crucial dans le processus d'initialisation des packages et de leurs dépendances.
Comme mentionné dans Effective Go :
"init est appelé une fois que toutes les déclarations de variables du package ont évalué leurs initialiseurs , et ceux-ci ne sont évalués qu'après que tous les packages importés ont été initialisés."
Cette instruction signifie que la fonction init() est exécutée une fois que toutes les variables du package ont été initialisé et après que tous les packages importés ont été initialisés. En initialisant des variables, cela signifie évaluer leurs initialiseurs.
Pour clarifier davantage, considérons le scénario suivant :
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 :
Cela démontre que AnswerToLife() sera exécuté avant init() et init() sera exécuté avant main(). De plus, il souligne que init() exécutera toute la logique d'initialisation, telle que la définition des valeurs des variables, une fois que toutes les dépendances et variables du package auront été initialisées.
Il est important de noter que init() est toujours appelé, qu'il existe ou non une fonction main(). Par conséquent, si vous importez un package contenant une fonction init(), il sera exécuté. De plus, un package peut avoir plusieurs fonctions init(), et elles seront exécutées dans l'ordre dans lequel elles apparaissent dans le fichier.
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!