每乙個原始檔都可以包含乙個init函式,該函式會在main函式執行前,被go執行框架呼叫,也就是說init會在main函式前被呼叫。
package main
import (
"fmt")/
//每乙個原始檔都可以包含乙個init函式,該函式會在main函式執行前,
//被go執行框架呼叫,也就是說init會在main函式前被呼叫
func init()
func main()
1、如果乙個檔案同時包含全域性變數定義,init函式和main函式,則執行的流程是
全域性變數定義->init函式->main函式
utils.go
package utils
import (
"fmt"
)var ip =getip()
func getip() string
func init()
func test()
main.go
package main
import
( "fmt"
"go_code/grammar/function/init/code/utils"
)var ip =getip
()func
getip
()string
func
init
()
func
main
()
測試結果:
e:\goproject
\src
\go_code\grammar
\function
\init
\code
\main>go run main.go
utils---------getip---------
utils---------init---------
main---------getip
main---------init
main1--------- 127.0.0.1
utils---------test---------
main---------main
main---------ip 127.0.0.1
main--------- 127.0.0.1
utils---------test---------
e:\goproject
\src
\go_code\grammar
\function
\init
\code
\main>
2、面試題:main.go 和 utils.go 都含有 全域性變數定義,init函式時,執行的流程又是怎麼樣的呢?
引入函式全域性變數->引入函式init函式->main函式全域性變數->main函式init函式->main函式
3、init函式最主要的作用,就是完成一些初始化的工作。初始化一些網路連線,資料庫連線池等。
func init()
go語言的init函式
go語言中init函式用於包 package 的初始化,該函式是go語言的乙個重要特性,有下面的特徵 下面演示乙個檔案中可以有多個init函式,執行順序是從上往下執行。aaa.go package core import fmt func init func init func show 下面是co...
Go語言init函式詳解
go init函式詳解 init 函式會在每個包完成初始化後自動執行,並且執行優先順序比main函式高。init 函式通常被用來 包的初始化 為了使用匯入的包,首先必須將其初始化。初始化總是以單執行緒執行,並且按照包的依賴關係順序執行。hleufd這通過golang的執行時系統控制,如下圖所示 in...
Go語言之函式使用 7 匿名函式
go支援匿名函式,如果我們某個函式只是希望使用一次,可以考慮使用匿名函式,匿名函式也可以實現多次呼叫。1 匿名函式使用方式1 在定義匿名函式時就直接呼叫,如下案例演示 2 匿名函式使用方式2 將匿名函式賦給乙個變數 函式變數 再通過該變數來呼叫匿名函式 如下案例演示 3 全域性匿名函式 如果將匿名函...