在Go語言中,init()
函數是一個特殊的函數,它會在程序運行時自動被調用,而不需要顯式調用。
init()
函數的執行順序如下:
init()
函數之前執行。init()
函數,它們會按照它們在代碼中出現的順序依次執行。需要注意的是,init()
函數在程序執行過程中只會執行一次。如果一個包被多次導入,init()
函數只會執行一次。
下面是一個示例代碼,展示了init()
函數的執行順序:
package main
import (
"fmt"
)
var packageVar = initializePackageVar()
func initializePackageVar() int {
fmt.Println("Initializing package-level variable")
return 42
}
func init() {
fmt.Println("Executing init() function")
}
func main() {
fmt.Println("Main function")
}
輸出結果為:
Initializing package-level variable
Executing init() function
Main function
從輸出結果可以看出,在程序運行之前,包級別的變量會被初始化。然后,在程序運行時,init()
函數會被自動調用。最后,main()
函數被調用。