3.3go语言中的main函数和init函数(代码片段)

孙琦Ray 孙琦Ray     2022-10-21     292

关键词:

main函数

其实从之前的示例中我们已经发现,所有的例子都包含main函数,这也是Go语言中较为特殊的函数。

  • 执行的入口函数为main()
  • 不接受参数,也不返回参数
  • 不需要显示调用
  • 每个包都必须要包含单个main包和main()函数

由于使用了很多次,这里就不再举例说明了。

init函数

除了main函数,还有一个特殊的函数叫init,简单理解就是在main函数之前执行,由于我自己阅读Go代码有限,对应用场景还没很直观的认识,所以后续可能还需要加深理解后,再进行讲解,大家也可以参考一下参考文档中的两篇来加深理解,我直接用一个例子来进行说明。

package main

import "fmt"

func init() 
    fmt.Println("First init called.")


func init() 
    fmt.Println("Second init called.")


func init() 
    fmt.Println("Third init called.")


func main() 
    fmt.Println("Main function called")

执行结果如下,有以下值得注意的点:

  • init在main之前执行
  • 可以定义多个init()
  • init()按照顺序执行
First init called.
Second init called.
Third init called.
Main function called

参考文档

go语言学习-main和init

main函数和init函数Go里面有两个保留的函数:init函数(能够应用于所有的package)和main函数(只能应用于packagemain)。这两个函数在定义时不能有任何的参数和返回值。虽然一个package里面可以写任意多个init函数,但这无论是对于... 查看详情

1go基础(代码片段)

1、Go语言最主要的特性自动垃圾回收更丰富的内置类型函数多返回值错误处理匿名函数和闭包类型和接口并发编程反射语言交互性2、$GOPATH目录约定有三个子目录src存放源代码(比如:.go.c.h.s等)按照golang默认约定,gorun,goinstall等... 查看详情

init函数与main函数(代码片段)

init函数与main函数init函数go语言中init函数用于包(package)的初始化,该函数是go语言的一个重要特性。有下面的特征:init函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等每个包可以拥有多个init函... 查看详情

init函数与main函数(代码片段)

init函数与main函数init函数go语言中init函数用于包(package)的初始化,该函数是go语言的一个重要特性。有下面的特征:init函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等每个包可以拥有多个init函... 查看详情

go语言中init函数作用(代码片段)

init函数作用执行Go语言的sync.Once操作;有些不能使用初始化表达式的变量,可以在init函数中初始化;先于普通函数执行一些操作。init函数特点init函数是先于main函数执行;packagemainimport"fmt"funcinit()fmt.Println(&#... 查看详情

go语言init函数(代码片段)

Go语言init函数Goinit函数用途init()函数会在每个包完成初始化后自动执行,并且执行优先级比main函数高。init函数通常被用来:对变量进行初始化检查/修复程序的状态注册运行一次计算包的初始化为了使用导入的包,首先必须将其... 查看详情

go语言中init函数作用(代码片段)

init函数作用执行Go语言的sync.Once操作;有些不能使用初始化表达式的变量,可以在init函数中初始化;先于普通函数执行一些操作。init函数特点init函数是先于main函数执行;packagemainimport"fmt"funcinit()fmt.Println(&#... 查看详情

《go语言精进之路》读书笔记|在init函数中检查包级变量的初始状态(代码片段)

书籍来源:《Go语言精进之路:从新手到高手的编程思想、方法和技巧》一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!附上汇总贴:《Go语言精进之路》读书笔记|汇总_COCOgsta的博... 查看详情

golang中的init函数以及main函数(代码片段)

 首先我们看一个例子:init函数:init函数可在packagemain中,可在其他package中,可在同一个package中出现多次。main函数main函数只能在packagemain中。执行顺序golang里面有两个保留的函数:init函数(能够应用于所有的package)和main... 查看详情

go语言自学系列|golanginit函数(代码片段)

视频来源:B站《golang入门到项目实战[2021最新Go语言教程,没有废话,纯干货!持续更新中...]》一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!附上汇总贴ÿ... 查看详情

详解go语言中的init()函数(代码片段)

阅读目录Goinit函数的详细说明包初始化Goinit函数的详细说明初始化每个包后,会自动执行init()函数,并且执行优先级高于主函数的执行优先级。init函数通常用于:变量初始化检查/修复状态注册器运行计算... 查看详情

详解go语言中的init()函数(代码片段)

阅读目录Goinit函数的详细说明包初始化Goinit函数的详细说明初始化每个包后,会自动执行init()函数,并且执行优先级高于主函数的执行优先级。init函数通常用于:变量初始化检查/修复状态注册器运行计算... 查看详情

go语言理论一(代码片段)

阅读目录理论Go语言的主要特征UTF-8和Unicode有何区别?Go语言命名Go语言内置函数内置接口errorinit函数init函数和main函数的异同Go语言内置的运算符算数运算符关系运算符逻辑运算符位运算符赋值运算符基本类型byte和rune类型数... 查看详情

go语言中init()函数介绍及执行顺序(代码片段)

Go语言中init()初始化函数init()函数介绍在Go语言程序执行时导入包语句会自动触发包内部init()函数的调用。需要注意的是:init()函数没有参数,也没有返回值。init()函数在程序运行时,自动自动被调用执行,不能在... 查看详情

golang中的init函数

...行,然后在a.go的再执行。这同样适用于init函数的触发。语言规范建议始终使用相同的顺序并按字典顺序从包中传递文件名:不过依赖文件名初始化顺序的程序十分罕见,让我们来看这样子的例子运行后,程序会这样输出init函数... 查看详情

golang/go语言go语言中包的使用init()函数协程和接口(代码片段)

1.包srC目录是以代码包的形式组织并保存Go源码文件的。每个代码包都和src目录下的文件夹一一对应。每个子目录都是一个代码包。一个目录下的同级文件归属一个包。也就是说,在同一个包下面的所有文件的package名,都... 查看详情

go语言基础(main函数数据类型)(代码片段)

go语言基础(main函数、数据类型)1、Go语言介绍Go语言是云计算时代的c语言c和c++这类语言提供了很快的执行速度,而Rudy和python这类语言则擅长快速开发。Go语言则介于两者之间,不仅提供了高性能的语言,同时也让开发更快速... 查看详情

『golang』包(代码片段)

可见性规则在Go语言中,标识符必须以一个大写字母开头,这样才可以被外部包的代码所使用,这被称为导出。标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的。但是包名不管在什... 查看详情