Il linguaggio Go riserva due funzioni per scopi speciali: main() e init() . Ecco le cose da sapere sull'utilizzo delle funzioni main() e init() in Golang .

funzione main()
Nel linguaggio Go, il pacchetto principale è un pacchetto speciale utilizzato con i programmi eseguibili e contiene la funzione main() . La funzione main() è un tipo speciale di funzione e costituisce il punto di ingresso dei programmi eseguibili. Non accetta argomenti e non restituisce nulla. Go chiama automaticamente main(), quindi non c'è bisogno di chiamare main() direttamente e ogni programma eseguibile deve contenere un singolo pacchetto principale e una funzione main().
Per esempio:
// 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())
}
Risultato:
Sorted slice: [2 5 10 76 78 123 345 567]
Index value: 3
Time: 1257894000
funzione init()
La funzione init() è identica alla funzione main: non accetta argomenti e non restituisce nulla. Questa funzione è presente in ogni pacchetto e viene chiamata quando il pacchetto viene inizializzato. Questa funzione è dichiarata implicitamente, quindi non è possibile farvi riferimento da nessuna parte ed è consentito creare più funzioni init() nello stesso programma, che vengono eseguite nell'ordine in cui sono state create. È consentito creare funzioni init() in qualsiasi punto del programma e vengono chiamate in base all'ordine del nome del file del dizionario (ordine alfabetico). È consentito inserire istruzioni se è presente una funzione init(), ma è sempre importante ricordare che la funzione init() viene eseguita prima della chiamata alla funzione main(), quindi non dipende dalla funzione main(). Lo scopo principale della funzione init() è inizializzare le variabili globali che non possono essere inizializzate nel contesto globale.
Per esempio:
// 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")
}
Risultato:
Welcome to init() function
Hello! init() function
Welcome to main() function