ภาษา Go สำรองฟังก์ชันไว้ 2 ฟังก์ชันสำหรับวัตถุประสงค์พิเศษ ได้แก่main() และ init( ) สิ่งที่ควรทราบเกี่ยวกับการใช้ฟังก์ชัน main() และ init() ในGolang มีดังนี้

ฟังก์ชั่น main()
ในภาษา Go แพ็คเกจ main เป็นแพ็คเกจพิเศษที่ใช้กับโปรแกรมปฏิบัติการ และแพ็คเกจนี้ประกอบด้วยฟังก์ชันmain()ฟังก์ชัน main() เป็นฟังก์ชันประเภทพิเศษและเป็นจุดเข้าสู่ระบบของโปรแกรมปฏิบัติการ มันไม่รับข้อโต้แย้งใดๆ และไม่ได้ส่งคืนสิ่งใดกลับมา Go จะเรียก main() โดยอัตโนมัติ จึงไม่จำเป็นต้องเรียก main() โดยตรง และโปรแกรมปฏิบัติการทุกโปรแกรมจะต้องมีแพ็กเกจ main และฟังก์ชัน main() เพียงรายการเดียว
ตัวอย่างเช่น:
// 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())
}
ผลลัพธ์:
Sorted slice: [2 5 10 76 78 123 345 567]
Index value: 3
Time: 1257894000
ฟังก์ชัน init()
ฟังก์ชัน init()นั้นจะเหมือนกับฟังก์ชันหลัก คือไม่รับอาร์กิวเมนต์ใดๆ และไม่ส่งคืนสิ่งใดเลย ฟังก์ชันนี้มีอยู่ในทุกแพ็คเกจและถูกเรียกใช้เมื่อมีการเริ่มต้นแพ็คเกจ ฟังก์ชันนี้ถูกประกาศโดยปริยาย ดังนั้นคุณจึงไม่สามารถอ้างอิงจากที่ใดๆ ได้ และอนุญาตให้สร้างฟังก์ชัน init() ได้หลายรายการในโปรแกรมเดียวกัน และจะดำเนินการตามลำดับที่สร้างขึ้น คุณสามารถสร้างฟังก์ชัน init() ได้ทุกที่ในโปรแกรม และจะถูกเรียกใช้ตามลำดับชื่อไฟล์พจนานุกรม (ลำดับตัวอักษร) คุณได้รับอนุญาตให้ใส่คำสั่งหากมีฟังก์ชัน init() แต่โปรดจำไว้เสมอว่าฟังก์ชัน init() จะถูกดำเนินการก่อนการเรียกฟังก์ชัน main() ดังนั้น จึงไม่ขึ้นอยู่กับฟังก์ชัน main() วัตถุประสงค์หลักของฟังก์ชัน init() คือการเริ่มต้นตัวแปรทั่วโลกที่ไม่สามารถเริ่มต้นได้ในบริบททั่วโลก
ตัวอย่างเช่น:
// 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")
}
ผลลัพธ์:
Welcome to init() function
Hello! init() function
Welcome to main() function