A linguagem Go reserva duas funções para propósitos especiais e essas funções são main() e init() . Aqui estão as coisas que você precisa saber sobre o uso das funções main() e init() no Golang .

função main()
Na linguagem Go, o pacote principal é um pacote especial usado com programas executáveis e este pacote contém a função main() . A função main() é um tipo especial de função e é o ponto de entrada de programas executáveis. Não aceita argumentos nem retorna nada. Go chama main() automaticamente, então não há necessidade de chamar main() diretamente, e cada programa executável deve conter um único pacote main e uma função main().
Por exemplo:
// 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
função init()
A função init() é como a função principal, ela não recebe nenhum argumento e não retorna nada. Esta função está presente em todos os pacotes e é chamada quando o pacote é inicializado. Esta função é declarada implicitamente, então você não pode referenciá-la de lugar nenhum e é permitido criar várias funções init() no mesmo programa e elas são executadas na ordem em que são criadas. Você tem permissão para criar funções init() em qualquer lugar do programa e elas são chamadas na ordem dos nomes dos arquivos do dicionário (ordem alfabética). Você tem permissão para inserir instruções se houver uma função init(), mas lembre-se sempre de que a função init() é executada antes da chamada da função main(), portanto, ela não depende da função main(). O objetivo principal da função init() é inicializar variáveis globais que não podem ser inicializadas no contexto global.
Por exemplo:
// 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