init()函式
init()函式優先於main()函式執行
每個原始檔都可以包含一個init函式,這個init函式自動被go執行框架呼叫,執行的優先順序最高。
讓我們做一個程式碼來驗證一下:
·目錄結構:
|-example2 |-initInfo |-initInfo.go |-students |-students.go |-example2.go
students---students.go:
package students import _ "oldboy/listen2/example2/initInfo" var Name string var Age int func init() { Name = "shengj" Age = 10 }
initInfo---initInfo.go
package initInfo import "fmt" func init() { fmt.Println("This is Info init") }
example2.go:
package initInfo import "fmt" func init() { fmt.Println("This is Info init") }
我們可以看到在students.student.go中有一個很有意思的操作:import _ "oldboy/listen2/example2/initInfo"
我們雖然引入了這個包,但是我們並沒有使用這個包中的任何東西,所以我們用_將這個包”隱藏了“,即