GO语言---init函数

文章目录

  • 基本特性
  • 使用示例
  • 常见用途
  • 注意事项

init函数是Go语言中一种特殊的函数,它在程序执行时自动被调用,主要用于包的初始化工作。

基本特性

1、自动执行:init函数不需要显式调用,Go运行时会在程序启动时自动调用它。

2、无参数无返回值:init函数没有参数,也没有返回值。

3、每个包可以有多个init函数:一个包中可以定义多个init函数。

4、执行顺序:
按照源文件名的字典顺序(即包名的ASCII码从小到大)执行。
同一个文件中的多个init函数按声明顺序执行。
依赖包的init函数先于当前包的init函数执行。

5、init函数的执行在全局变量初始化后面。

使用示例

示例代码:

package main

import "fmt"

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

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

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

输出:

第一个init函数
第二个init函数
main函数

常见用途

1、初始化包级别的变量。

2、注册驱动或插件。

3、执行一次性的初始化计算。

4、检查或修复程序状态。

5、数据库连接初始化等。

注意事项

1、init函数不能被其他函数调用。

2、init函数的执行顺序依赖于文件名的字典序,不要编写依赖特定执行顺序的代码。

3、过度使用init函数会使代码难以理解和维护,在init函数中发生的错误处理比较困难,通常应该使用显式初始化代替。

你可能感兴趣的:(GO语言学习笔记,golang,开发语言,后端)