Go dili özel amaçlar için iki fonksiyon ayırır ve bu fonksiyonlar main() ve init()' tir . Golang'da main() ve init() fonksiyonlarını kullanırken bilmeniz gerekenler şunlardır .

main() fonksiyonu
Go dilinde main paketi, çalıştırılabilir programlarla kullanılan özel bir pakettir ve bu pakette main() fonksiyonu bulunur . main() fonksiyonu özel bir fonksiyon türüdür ve çalıştırılabilir programların giriş noktasıdır. Hiçbir argüman almaz ve hiçbir şey döndürmez. Go otomatik olarak main()'i çağırır, bu yüzden main()'i doğrudan çağırmaya gerek yoktur ve her çalıştırılabilir program tek bir main paketi ve main() fonksiyonu içermelidir.
Örneğin:
// 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())
}
Sonuç:
Sorted slice: [2 5 10 76 78 123 345 567]
Index value: 3
Time: 1257894000
init() fonksiyonu
init() fonksiyonu tıpkı main fonksiyonu gibidir, herhangi bir argüman almaz ve hiçbir şey döndürmez. Bu fonksiyon her pakette mevcuttur ve paket başlatıldığında çağrılır. Bu fonksiyon örtük olarak tanımlandığı için herhangi bir yerden referans alamazsınız ve aynı program içerisinde birden fazla init() fonksiyonu oluşturulabilir ve bunlar oluşturuldukları sırayla yürütülür. Programın herhangi bir yerinde init() fonksiyonları oluşturmanıza izin verilir ve bunlar sözlük dosya adı sırasına (Alfabetik sıraya) göre çağrılır. Eğer init() fonksiyonu varsa ifadeler koymanıza izin verilir, ancak init() fonksiyonunun main() fonksiyon çağrısından önce yürütüldüğünü, dolayısıyla main() fonksiyonuna bağlı olmadığını her zaman unutmayın. init() fonksiyonunun temel amacı, global bağlamda başlatılamayan global değişkenleri başlatmaktır.
Örneğin:
// 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")
}
Sonuç:
Welcome to init() function
Hello! init() function
Welcome to main() function