Golang 學習筆記(不定期更新)
阿新 • • 發佈:2019-02-05
本文主要記錄作者使用 Go 開發過程中的問題及總結。
1)不同檔案屬於同一個 package,每個 go 檔案如果有 init(), 則全部 init() 會預設執行,根據包的匯入先後及遞進關係來先後執行;同一個檔案可以有多個同名 init 函式,即不會出現重複定義的錯誤
呼叫過程如下圖所示,
示例程式碼:
(1) main.go
package main
import (
"fmt"
"test/subpac"
)
func init(){
fmt.Println("Init(): main.")
}
func main() {
fmt .Println("vim-go")
var tmp subpac.Subpac
fmt.Println(tmp)
}
(2) subpac.go
package subpac
import(
"fmt"
)
func init(){
fmt.Println("Init(): subpac.")
}
type Subpac struct{
Name string
}
將會輸出如下資訊:
Init(): subpac.
Init(): main.
vim-go
{}
2) 每個包必須位於單獨的目錄。
比如 1)中的 main.go 屬於 package main,因此位於 main 目錄,而 subpac.go 屬於 package subpac,因此位於 subpac 目錄。