Bài này ghi lại những thứ tôi hiểu về hàm init trong Go.
Khi tạo ứng dụng với ngôn ngữ Go, bạn cần khởi tạo biến cùng giá trị của chúng. Một trong những cách để làm điều này là khởi tạo chúng ở đầu hàm main() hoặc khởi tạo chúng như biến global. Hàm init() cho phép bạn chạy code trước hàm main() và sau khi biến global được khởi tạo.
Concepts
Hàm init() sẽ được gọi trước hàm main() theo thứ tự như hình dưới.
Requirements
Để chạy được phần code demo, bạn cần cài Go và nodemon. Bạn có thể chọn bất kỳ editor nào. Tôi dùng Visual Studio Code.
Demo
Hàm init() chỉ chạy một lần.
Hàm init() sẽ chạy sau khi biến global của package được khởi tạo và trước hàm main().
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
packagemainimport("fmt")funcmain(){fmt.Println("run main")}funcinit(){fmt.Println("init package main")fmt.Println("x =",x)}varxint=1// biến global
1
nodemon --exec go run main.go --signal SIGTERM
1
2
3
init package main
x=1run main
Hàm init() bên trong package sẽ chạy khi import package bất kể bạn có sử dụng package này hay không.