init()、main() 是 go 语言中的保留函数。
我们可以在源码中,定义 init() 函数。此函数会在包被导入时执行
一个包被其它多个包 import,但只能被初始化一次
相同点:
- 两个函数在定义时不能有任何的参数和返回值。
- 该函数只能由 go 程序自动调用,不可以被引用。
不同点:
- init 可以应用于任意包中,且可以重复定义多个。
- main 函数只能用于 main 包中,且只能定义一个。
(1) src/userPackage/tool.go
package userPackage
import "fmt"
func init() {
fmt.Println("tool init")
}
(2) src/main.go
```go package main import ( “userPackage” )
func main() { fmt.Println(“main run”)
userPackage.SomeFunc() } ```