我看源代码中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.init函数就是加载这个包的时候会调用的,一般不建议在这里面写比较复杂的逻辑,出问题找起来麻烦
2.是起个go routine去调用这个匿名函数