go语言函数二、init函数定义与作用

go语言init函数定义与作用

在go语言中,每一个源文件都可以包含一个init函数,这个函数会在main函数执行前,被go运行框架调用,注意是在main函数执行前。

package main
import (
    "fmt"
)

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

上述代码init会被先打印
因此我们通常使用init函数来完成包的初始化工作。

init函数注意事项

  • 如果一个文件中同时包含(全局)变量定义,init函数,main函数,那么执行顺序是变量定义–>init函数–>main函数
  • init函数主要用来做初始化工作,典型的案例在另外一个包中的变量需要在当前包中引用,但需要先对其变量进行初始化,避免直接使用未初始化的变量,go的包其实是类似c++类的概念,init函数类似于构造函数,对成员变量进行初始化
package main
import (
    "fmt"
)

// 变量定义会被先执行,同时也会执行get_val函数
var int = get_val()
func get_val() int {
   
    fmt.Println("in get val")
    return 1
}

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

func main() {
   
    fmt.Println("in main")
}
  • 当前文件带引入包的执行顺序如下:执行引入包文件的变量定义–>执行引入包文件的init函数–>执行当前包的变量定义–>执行当前包的init函数–>如果当前包含main,则执行main函数
    在这里插入图片描述

相关推荐

  1. Go语言中的init函数的执行时机

    2023-12-21 04:52:02       31 阅读
  2. Go语言基本语法(四)函数变量的作用

    2023-12-21 04:52:02       11 阅读
  3. 函数作用

    2023-12-21 04:52:02       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-21 04:52:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-21 04:52:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-21 04:52:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-21 04:52:02       18 阅读

热门阅读

  1. 算法基础课-基础算法-二分-数的三次方根

    2023-12-21 04:52:02       44 阅读
  2. .gitignore和git lfs学习

    2023-12-21 04:52:02       32 阅读
  3. 大论文数据处理及分析

    2023-12-21 04:52:02       39 阅读
  4. 【ARM 安全系列介绍 3.1 -- 数字签名算法 ECDSA】

    2023-12-21 04:52:02       34 阅读
  5. LEFT JOIN

    LEFT JOIN

    2023-12-21 04:52:02      34 阅读
  6. ffplay工具

    2023-12-21 04:52:02       49 阅读
  7. Linux 下 通过ffmpeg 读取yuv编码264 码流

    2023-12-21 04:52:02       32 阅读
  8. 两变频调速电机系统的神经网络逆同步控制

    2023-12-21 04:52:02       37 阅读