init - skynocover/Wiki-for-GoLang GitHub Wiki
特性
- init函數先於main函數自動執行,不能被其他函數調用;
- init函數沒有輸入參數、返回值;
- 每個包可以有多個init函數;
初始化順序:變量初始化->init()->main()
init()可以在同一個package內重複執行多次
func init() {
fmt.Println("init 1")
}
func init() {
fmt.Println("init 2")
}
func main() {
fmt.Println("Hello, playground")
}
如果只需要package內的init()而不需要其他變數可以用_
_ "github.com/lib/pq
主要用途
用來初始化不能使用初始化表達式初始化的變量
var initArg [20]int
func init() {
initArg[0] = 10
for i := 1; i < len(initArg); i++ {
initArg[i] = initArg[i-1] * 2
}
}