Golang --- init 與 package 關係

本篇主要是紀錄一下package init() 這func,當package被引用時是否會觸發,如果會觸發則何時觸發。

本篇使用兩個.go測試

  1. main.go
    package main
    
    import (
        "fmt"
        "mygo/test/other"
    )
    
    func main() {
    
        fmt.Println("HI i am main")
        other.NewOther()
    }
    
  2. init.go
    package other
    
    import (
        "fmt"
    )
    
    func init() {
        fmt.Println("HI i am other")
    }
    
    func NewOther() {
        fmt.Println("Just new an other")
    }
    

執行後的結果為

HI i am other
HI i am main
Just new an other

代表說init()在package成功被引用後就會被執行

comments powered by Disqus