您現在的位置是:首頁 > 手機遊戲首頁手機遊戲

清華學神尹成帶你學習golang2021(26)Init函式和main函式

  • 由 清華學神尹成技術魔宮 發表于 手機遊戲
  • 2022-07-19
簡介有下面的特徵:1 init函式是用於程式執行前做包的初始化的函式,比如初始化包裡的變數等2 每個包可以擁有多個init函式3 包的每個原始檔也可以擁有多個init函式4 同一個包中多個init函式的執行順序go語言沒有明確的定義(說明)5

魔宮怎麼走

Init函式和main函式

1。1。 init函式

go語言中init函式用於包(package)的初始化,該函式是go語言的一個重要特性。

有下面的特徵:

1 init函式是用於程式執行前做包的初始化的函式,比如初始化包裡的變數等

2 每個包可以擁有多個init函式

3 包的每個原始檔也可以擁有多個init函式

4 同一個包中多個init函式的執行順序go語言沒有明確的定義(說明)

5 不同包的init函式按照包匯入的依賴關係決定該初始化函式的執行順序

6 init函式不能被其他函式呼叫,而是在main函式執行之前,自動被呼叫

1。2。 main函式

Go語言程式的預設入口函式(主函式):func main()

函式體用{}一對括號包裹。

func main(){

//函式體

}

1。3。 init函式和main函式的異同

相同點:

兩個函式在定義時不能有任何的引數和返回值,且Go程式自動呼叫。

不同點:

init可以應用於任意包中,且可以重複定義多個。

main函式只能用於main包中,且只能定義一個。

兩個函式的執行順序:

對同一個go檔案的init()呼叫順序是從上到下的。

對同一個package中不同檔案是按檔名字串比較“從小到大”順序呼叫各檔案中的init()函式。

對於不同的package,如果不相互依賴的話,按照main包中“先import的後呼叫”的順序呼叫其包中的init(),如果package存在依賴,則先呼叫最早被依賴的package中的init(),最後呼叫main函式。

如果init函式中使用了println()或者print()你會發現在執行過程中這兩個不會按照你想象中的順序執行。這兩個函式官方只推薦在測試環境中使用,對於正式環境不要使用。

清華學神尹成帶你學習golang2021(26)Init函式和main函式

Top