golang中的init函数有什么作用?

我看源代码中control.go文件有如下代码:

package control
...
func init() {
    go func() {
        fmt.Println("main init2 with go routine")
        time.Sleep(time.Second * 5)
        fmt.Println("main init2 finish sleep")
    }()
}

对此我有2个问题:
1)init()函数的作用是什么?
2)go func()函数的功能是什么意思,为何这样写?

go func() {
        fmt.Println("main init2 with go routine")
        time.Sleep(time.Second * 5)
        fmt.Println("main init2 finish sleep")
    }()
阅读 1.2k
1 个回答

1.init函数就是加载这个包的时候会调用的,一般不建议在这里面写比较复杂的逻辑,出问题找起来麻烦
2.是起个go routine去调用这个匿名函数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题