go init 函数

综述

go 语言中的的 ini 函数用于 package 包的初始化,该函数是 go 语言的一个重要的特性

有特征如下

  1. init函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等

  2. 每个包可以拥有多个init函数

  3. 包的每个源文件也可以拥有多个init函数

  4. 同一个包中多个init函数的执行顺序go语言没有明确的定义(应该是顺序执行)

  5. 不同包的init函数按照包导入的依赖关系决定该初始化函数的执行顺序

  6. init函数不能被其他函数调用,而是在main函数执行之前,自动被调用

示例:一个函数有多个 init 函数,执行顺序,从上到下

a文件

package a

import "fmt"

func init() {
	fmt.Println("A 函数的第一个 init 函数")
}
func init() {
	fmt.Println("A 函数的第二个 init 函数")
}

b文件

func init() {
	fmt.Println("B 函数的第一个 init 函数")
	fmt.Println("B 函数的第二个 init 函数")
}

此时执行 main 函数会有如下输出:

A 函数的第一个 init 函数
A 函数的第二个 init 函数
b 函数的第一个 init 函数
b 函数的第二个 init 函数

注意

  1. 一般来说,如果只需要一个包的 init函数,不需要这个包另外的方法,可以这么写,这样就表示只执行这个包的 init函数。
`import _ "zhao/init/a"`
  1. import 引入package 文件,路径是文件夹的路径
`import _ "zhao/init/a"`
  1. 一个 .go 文件就是一个源文件

文章转载自 https://www.cnblogs.com/gwyy/p/13469431.html

上一篇:Flask+flask-socketio+jsonrpc组合配置避坑


下一篇:如何给动态添加的form表单控件添加表单验证