您現在的位置是:首頁 > 手機遊戲首頁手機遊戲
清華學神尹成帶你學習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()你會發現在執行過程中這兩個不會按照你想象中的順序執行。這兩個函式官方只推薦在測試環境中使用,對於正式環境不要使用。