在Go語言中,init()
函數是一個特殊的函數,用于初始化包或者初始化程序。每個包可以包含一個或多個init()
函數,它們會在程序執行之前自動被調用。init()
函數沒有參數和返回值。
init()
函數的主要用途有兩個:
初始化包:在包被導入的時候,init()
函數會自動執行,用于初始化包級別的變量、執行一些初始化操作或者注冊一些需要在程序運行之前進行的邏輯。在一個包中,可以有多個init()
函數,它們按照它們在源文件中的順序依次執行。
初始化程序:在Go程序執行時,所有的包都會被自動導入,并且每個包中的init()
函數也會被自動執行。這些init()
函數可以用來初始化程序級別的變量、執行一些初始化操作或者注冊一些需要在程序運行之前進行的邏輯。
需要注意的是,init()
函數是在main()
函數運行之前執行的,所以它們之間沒有先后順序的關系。并且,如果一個包中有多個init()
函數,它們的執行順序是不確定的。
以下是一個示例代碼,展示了init()
函數的用法:
package main
import "fmt"
func init() {
fmt.Println("Initializing...")
}
func main() {
fmt.Println("Hello, world!")
}
輸出結果為:
Initializing...
Hello, world!