本文摘自php中文网,作者尚,侵删。

go语言中init函数用于包(package)的初始化,该函数是go语言的一个重要特性,
有下面的特征:
1 init函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等
2 每个包可以拥有多个init函数
3 包的每个源文件也可以拥有多个init函数
4 同一个包中多个init函数的执行顺序go语言没有明确的定义(说明)
5 不同包的init函数按照包导入的依赖关系决定该初始化函数的执行顺序
6 init函数不能被其他函数调用,而是在main函数执行之前,自动被调用
下面这个示例摘自《the way to go》,os差异在应用程序初始化时被隐藏掉了,
1 2 3 4 5 6 7 8 9 |
|
下面的两个go文件演示了:
1 一个package或者是go文件可以包含多个init函数,
2 init函数是在main函数之前执行的,
3 init函数被自动调用,不能在其他函数中调用,显式调用会报该函数未定义
gprog.go代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
ginit1.go代码,注意这个源文件中有两个init函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
编译上面两个文件:go build gprog.go ginit1.go
相关阅读 >>
更多相关阅读请进入《Go语言》频道 >>

Go语言101
一个与时俱进的Go编程知识库。