Go語言之函式使用 6 init函式

2021-08-22 16:31:10 字數 1656 閱讀 7255

每乙個原始檔都可以包含乙個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 全域性匿名函式 如果將匿名函...