El lenguaje Go reserva dos funciones para propósitos especiales y esas funciones son main() e init() . Aquí encontrará información sobre el uso de las funciones main() e init() en Golang .

función main()
En lenguaje Go, el paquete principal es un paquete especial utilizado con programas ejecutables y este paquete contiene la función main() . La función main() es un tipo especial de función y es el punto de entrada de los programas ejecutables. No toma ningún argumento ni devuelve nada. Go llama automáticamente a main(), por lo que no es necesario llamar a main() directamente, y cada programa ejecutable debe contener un solo paquete principal y una función main().
Por ejemplo:
// 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())
}
Resultado:
Sorted slice: [2 5 10 76 78 123 345 567]
Index value: 3
Time: 1257894000
función init()
La función init() es como la función principal, no toma ningún argumento y no devuelve nada. Esta función está presente en cada paquete y se llama cuando se inicializa el paquete. Esta función se declara implícitamente, por lo que no se puede referenciar desde ningún lugar y se permite crear múltiples funciones init() en el mismo programa y se ejecutan en el orden en que se crean. Se le permite crear funciones init() en cualquier parte del programa y se llaman en el orden del nombre del archivo de diccionario (orden alfabético). Se le permite colocar declaraciones si hay una función init(), pero recuerde siempre que la función init() se ejecuta antes de la llamada a la función main(), por lo que no depende de la función main(). El propósito principal de la función init() es inicializar variables globales que no se pueden inicializar en el contexto global.
Por ejemplo:
// 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")
}
Resultado:
Welcome to init() function
Hello! init() function
Welcome to main() function