Język Go zarezerwował dwie funkcje do celów specjalnych, a są to main() i init() . Poniżej znajdziesz informacje na temat korzystania z funkcji main() i init() w języku Go .

funkcja main()
W języku Go pakiet główny to specjalny pakiet używany z programami wykonywalnymi. Zawiera on funkcję main() . Funkcja main() jest specjalnym typem funkcji i stanowi punkt wejścia programów wykonywalnych. Nie przyjmuje żadnych argumentów i nie zwraca niczego. Go automatycznie wywołuje funkcję main(), więc nie ma potrzeby bezpośredniego wywoływania funkcji main(), a każdy program wykonywalny musi zawierać pojedynczy pakiet główny i funkcję main().
Na przykład:
// 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())
}
Wynik:
Sorted slice: [2 5 10 76 78 123 345 567]
Index value: 3
Time: 1257894000
funkcja init()
Funkcja init() jest taka sama jak funkcja main, nie przyjmuje żadnych argumentów i nic nie zwraca. Funkcja ta jest obecna w każdym pakiecie i jest wywoływana podczas inicjalizacji pakietu. Funkcja ta jest zadeklarowana niejawnie, więc nie można się do niej odwoływać z żadnego miejsca. W tym samym programie można utworzyć wiele funkcji init(). Są one wykonywane w kolejności, w jakiej zostały utworzone. Funkcje init() można tworzyć w dowolnym miejscu programu. Są one wywoływane w kolejności zgodnej z nazwami plików słownika (w porządku alfabetycznym). Można wstawiać polecenia, jeśli istnieje funkcja init(), należy jednak zawsze pamiętać, że funkcja init() jest wykonywana przed wywołaniem funkcji main(), więc nie jest zależna od funkcji main(). Głównym celem funkcji init() jest inicjalizacja zmiennych globalnych, których nie można zainicjować w kontekście globalnym.
Na przykład:
// 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")
}
Wynik:
Welcome to init() function
Hello! init() function
Welcome to main() function