Maison >développement back-end >Golang >A quoi sert la méthode init() en langage go ?
Dans le langage Go, la méthode init() est utilisée pour l'initialisation des packages ; après l'initialisation de chaque package, la fonction init() sera automatiquement exécutée et la priorité d'exécution est supérieure à la priorité d'exécution de la fonction principale. La méthode init() est généralement utilisée pour : 1. Initialisation de variable ; 2. Vérifier/réparer l'état 3. Registraire ; 4. Exécuter des calculs ; La fonction init() est automatiquement appelée et exécutée lorsque le programme est en cours d'exécution et elle ne peut pas être activement appelée dans le code. Les fonctions init des différents packages déterminent l'ordre d'exécution des fonctions d'initialisation en fonction des dépendances importées par le package.
L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.
Description détaillée de la fonction Go init
La fonction init dans le langage go est utilisée pour initialiser le package. Cette fonction est une fonctionnalité importante du langage go
Lorsque le programme est exécuté, le package d'importation. L'instruction déclenchera automatiquement l'appel de la fonction init() à l'intérieur du package.
Après l'initialisation de chaque package, la fonction init() sera automatiquement exécutée et la priorité d'exécution est supérieure à la priorité d'exécution de la fonction principale.
Il est à noter que la fonction init() n'a aucun paramètre ni aucune valeur de retour.
La fonction init est généralement utilisée pour :
Exécution de calculs
La fonction init() est automatiquement appelée et exécutée lorsque le programme est en cours d'exécution et ne peut pas être exécuté dans le code Appelez-le activement.
La séquence d'exécution de l'initialisation du package est illustrée dans la figure ci-dessous :
Le résultat est :
10 Hello 沙河
La fonction init() a les caractéristiques suivantes :
la fonction init est une fonction utilisée pour initialiser le package avant l'exécution du programme, comme l'initialisation des variables dans le package, etc. même package L'ordre d'exécution du langage go n'a pas de définition claire (explication)
Les fonctions init des différents packages déterminent l'ordre d'exécution de la fonction d'initialisation en fonction des dépendances importées par le package
La fonction init ne peut pas être appelé par d'autres fonctions, mais dans main Avant que la fonction ne soit exécutée, elle est automatiquement appelée
Exécuter les fonctions d'initialisation dans les packages
package main import "fmt" var _ int64=s() func init(){ fmt.Println("init function --->") } func s() int64{ fmt.Println("function s() --->") return 1 } func main(){ fmt.Println("main --->") }
function s() —> init function —> main —>
Introduction aux fonctionnalités
La fonction init n'a pas besoin de transmettre de paramètres, ni de renvoyer de valeur. Contrairement à main, init n'est pas déclaré et ne peut donc pas être référencé.
package main import "fmt" func init(){ fmt.Println("init") } func main(){ init() }
Une erreur s'est produite lors de la compilation de la fonction "
" ci-dessus. Chaque fichier source peut contenir plus d'une fonction d'initialisation, n'oubliez pas que le "chemin de marche" écrit dans chaque fichier source ne peut contenir qu'une seule fonction d'initialisation, c'est un peu différent, alors passez à la vérification suivante.package main import "fmt" func init(){ fmt.Println("init 1") } func init(){ fmt.Println("init2") } func main(){ fmt.Println("main") } /* 实施结果: init1 init2 main */Dans l'exemple ci-dessus, vous pouvez voir que chaque fichier source peut contenir plusieurs fonctions d'initialisation. Un exemple courant de fonction d'initialisation consiste à définir la valeur d'une expression initiale.
var precomputed=[20]float64{} func init(){ var current float64=1 precomputed[0]=current for i:=1;i<len(precomputed);i++{ precomputed[i]=precomputed[i-1]*1.2 } }Comme il n'est pas possible d'utiliser une boucle for pour les valeurs précalculées dans le code ci-dessus (qui est une instruction), vous pouvez utiliser la fonction init pour résoudre ce problème.
undefined:init
Effets secondaires des règles d'importation de packages Go
Go est très strict et n'autorise pas les références à des packages inutilisés. Mais parfois, vous faites référence au package simplement pour appeler la fonction init afin d'effectuer une initialisation. Le but de l'identifiant vide (c'est-à-dire le trait de soulignement) est de résoudre ce problème.
import _ "image/png"
【Recommandations associées :
Tutoriel vidéo Go,
Enseignement de la programmation】
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!