init函数和main函数一样是go语言中的保留函数,由go自动调用
main函数只能应用于main包中, 但是init函数可以使用在任意包中
init函数会在包被导入时自动执行(在常量和变量初始化之后)
我们使用下面的例子进行验证
C:\DEV\workspace_angularjs\GoHelloInit\src\main\main.go
package main
import (
t "testinit"
)
func main(){
t.SayHello()
}
C:\DEV\workspace_angularjs\GoHelloInit\src\testinit\app.go
package testinit
import (
"fmt"
)
var a = 1;
func init(){
fmt.Println("init called" , a);
}
func SayHello(){
fmt.Println("hello world");
}
C:\DEV\workspace_angularjs\GoHelloInit\src\testinit\app2.go
package testinit
import (
"fmt"
)
var b = 1;
func init(){
fmt.Println("init called2" , b);
}
可见输出
init called 1
init called2 1
hello world
