1. 程式人生 > >Go語言學習-main和init

Go語言學習-main和init

都是 函數 很多 學習 導入 同時 如果 ack 它的

main 函數和 init 函數
Go裏面有兩個保留的函數: init 函數(能夠應用於所有的 package )和 main 函數(只能應用於 package main )。
這兩個函數在定義時不能有任何的參數和返回值。雖然一個 package 裏面可以寫任意多個 init 函數,但這無論是對
於可讀性還是以後的可維護性來說,我們都強烈建議用戶在一個 package 中每個文件只寫一個 init 函數。
Go程序會自動調用 init() 和 main() ,所以你不需要在任何地方調用這兩個函數。每個 package 中的 init 函數都是
可選的,但 package main 就必須包含一個 main 函數。
程序的初始化和執行都起始於 main 包。如果 main 包還導入了其它的包,那麽就會在編譯時將它們依次導入。有時一
個包會被多個包同時導入,那麽它只會被導入一次(例如很多包可能都會用到 fmt 包,但它只會被導入一次,因為沒
有必要導入多次)。當一個包被導入時,如果該包還導入了其它的包,那麽會先將其它包導入進來,然後再對這些包
中的包級常量和變量進行初始化,接著執行 init 函數(如果有的話),依次類推。等所有被導入的包都加載完畢
了,就會開始對 main 包中的包級常量和變量進行初始化,然後執行 main 包中的 init 函數(如果存在的話),最後執
行 main 函數。

Go語言學習-main和init