Le langage Go réserve deux fonctions à des fins spéciales et ces fonctions sont main() et init() . Voici les choses à savoir sur l’utilisation des fonctions main() et init() dans Golang .

fonction main()
En langage Go, le package principal est un package spécial utilisé avec les programmes exécutables et ce package contient la fonction main() . La fonction main() est un type spécial de fonction et constitue le point d'entrée des programmes exécutables. Il ne prend aucun argument et ne renvoie rien. Go appelle automatiquement main(), il n'est donc pas nécessaire d'appeler main() directement, et chaque programme exécutable doit contenir un seul package principal et une fonction main().
Par exemple:
// Chương trình Go minh họa
// khái niệm của hàm main()
// Khai báo gói chính
package main
// Nhập các gói
import (
"fmt"
"sort"
"strings"
"time"
)
// Hàm chính
func main() {
// Sắp xếp slice đưa ra
s := []int{345, 78, 123, 10, 76, 2, 567, 5}
sort.Ints(s)
fmt.Println("Sorted slice: ", s)
// Tìm chỉ mục
fmt.Println("Index value: ", strings.Index("Quantrimang", "ks"))
// Tìm thời gian
fmt.Println("Time: ", time.Now().Unix())
}
Résultat:
Sorted slice: [2 5 10 76 78 123 345 567]
Index value: 3
Time: 1257894000
fonction init()
La fonction init() est identique à la fonction principale, elle ne prend aucun argument et ne renvoie rien. Cette fonction est présente dans chaque package et est appelée lorsque le package est initialisé. Cette fonction est déclarée implicitement, vous ne pouvez donc pas y faire référence depuis n'importe où et il est permis de créer plusieurs fonctions init() dans le même programme et elles sont exécutées dans l'ordre dans lequel elles sont créées. Vous êtes autorisé à créer des fonctions init() n'importe où dans le programme et elles sont appelées dans l'ordre des noms de fichiers du dictionnaire (ordre alphabétique). Vous êtes autorisé à placer des instructions s'il existe une fonction init(), mais rappelez-vous toujours que la fonction init() est exécutée avant l'appel de la fonction main(), elle ne dépend donc pas de la fonction main(). L'objectif principal de la fonction init() est d'initialiser les variables globales qui ne peuvent pas être initialisées dans le contexte global.
Par exemple:
// Chương trình Go minh họa
// khái niệm của hàm init()
// Khai báo gói chính
package main
// Nhập gói
import "fmt"
// Hàm init() có nhiều nhánh
func init() {
fmt.Println("Welcome to init() function")
}
func init() {
fmt.Println("Hello! init() function")
}
// Hàm chính
func main() {
fmt.Println("Welcome to main() function")
}
Résultat:
Welcome to init() function
Hello! init() function
Welcome to main() function