Go init函数

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