Go语言中init函数

一、基本介绍

每一个源文件都可以包含一个init函数,该函数会在main函数执行前,被Go运行框架调用,也就是说init函数会在main函数前调用。

二、案例说明

package main

import (
	"fmt"
)

func main() {
	fmt.Println("main()...")
}

func init() {
	fmt.Println("init()...")
}

输出结果:

init()...
main()...

三、注意细节

  1. 如果一个文件中同时包含全局变量定义,init函数和main函数,则执行流程是:全局变量定义->init函数->main函数
package main

import (
	"fmt"
)

var a = test()

func main() {
	fmt.Println("main()...")
}

func init() {
	fmt.Println("init()...")
}

func test() int {
	fmt.Println("test()...")
	return 1
}

输出结果:

test()...
init()...
main()...
  1. init函数最主要的作用,就是完成一些初始化的工作.

  2. 如果main.go引用了utils.go,且main.go和utils.go都含有全局变量定义,init函数时,执行流程如下图:
    image

posted @ 2021-05-11 22:38  若雨蚂蚱  阅读(238)  评论(0编辑  收藏  举报