Go語言學習-main和init

來源:互聯網
上載者:User

標籤:依次   學習   一個   它的   不能   自動調用   pack   多次   參數   

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.