在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!