在 Go 语言中,init()
函数是在程序启动时执行的,在 main 函数之前执行。
执行顺序: import –> const –> var –>init()–>main()
- 首先,Go 语言会按照包的依赖关系初始化所有导入的包。没有依赖关系的包会先初始化。
- 对于同一个包,会先初始化包作用域的常量和变量(常量优先于变量),然后执行包的 init() 函数。
- 同一个包可以有多个 init() 函数,它们会按照声明顺序执行。
init() 函数的用途:
- 初始化包或模块的全局变量。
- 注册自定义函数或类型。
- 执行其他初始化操作。
示例:
Go
package main
import "fmt"
func init() {
fmt.Println("init() 函数被执行")
}
func main() {
fmt.Println("main() 函数被执行")
}
输出:
init() 函数被执行
main() 函数被执行
注意事项:
- init() 函数不能有参数和返回值。
- init() 函数可以有多个,它们会按照声明顺序执行。
- init() 函数不能使用延迟函数 (defer)。
总结:
init()
函数是 Go 语言中一个重要的函数,用于在程序启动时执行初始化操作。