go 关于包中的init函数

在学习go包管理中提及到 init 函数 于是做了如下测试:

  • 在src 目录下的 project1目录新建了 main 文件夹和 test 文件夹
  • 然后在 test 文件夹中写了三个go文件,包都为 test
  • 在三个文件中都写了 init() 函数 ,三个文件的init函数类似下面
func init()  {
    fmt.Println("this is girl init")
}
  • 之后在main文件中引入test包 import "project1/test"

项目结构图

想看看多个 init函数 会不会冲突,发现 并不会
之后 想看看多个 init 的 执行顺序,结果发现好像是按照 文件命名的 ascii 顺序 (字母顺序)来执行的

执行结果:

this is exam init
this is girl init
this is try init

尝试 改变 三个文件的命名,可以发现输出的顺序与文件名排序一致,我感觉这样有点不是很好啊….

以后应该是尽量 一个包 只写 一个 init函数 吧….

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值