Golang init 函数
优质
小牛编辑
147浏览
2023-12-01
golang 里面有两个保留的函数:
- init 函数(能够应用于所有的 package)
- main 函数(只能应用于 package main)
- 这两个函数在定义时不能有任何的参数和返回值
go 程序会自动调用 init() 和 main(),所以你 不能
在任何地方调用这两个函数
package main 必须包含一个 main 函数,但是每个 package 中的 init 函数都是可选的
一个 package 里面可以写任意多个 init 函数,但这无论是对于可读性还是以后的可维护性来说,我们都强烈建议用户在一个 package 中每个文件只写一个 init 函数
单个包中代码执行顺序如下
main包-->常量-->全局变量-->init函数-->main 函数-->Exit
package main import "fmt" const constValue = 998 // 1 var gloalVarValue int = abc() // 2 func init() { // 3 fmt.Println("执行main包中main.go中init函数") } func main() { // 4 fmt.Println("执行main包中main.go中main函数") } func abc() int { fmt.Println("执行main包中全局变量初始化") return 998 }
多个包之间代码执行顺序如下
init 函数的作用
- init 函数用于处理当前文件的初始化操作,在使用某个文件时的一些准备工作应该放到这里