欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go語言中init函數(shù)與匿名函數(shù)使用淺析

 更新時間:2023年01月16日 10:20:54   作者:fiveym  
這篇文章主要介紹了Go語言中init函數(shù)與匿名函數(shù)使用淺析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧

init函數(shù)

基本介紹

每一個源文件都可以包含一個init函數(shù),該函數(shù)會在main函數(shù)執(zhí)行前,被Go運行框架調(diào)用,也就是說init會在main函數(shù)前被調(diào)用

package main
import "fmt"
//init函數(shù),通常可以在init函數(shù)中完成初始化工作
func init() {
	fmt.Println("init()")
}
func main() {
	fmt.Println("main()")
}
/*
init()
main()
*/

注意事項和細(xì)節(jié)

1.如果一個文件同時包含全局變量定義,init函數(shù)和main函數(shù),則執(zhí)行的流程是變量定義->init函數(shù)->main函數(shù)

2.init函數(shù)最主要的作用,就是完成一些初始化的工作

案例

如果main.go和utils.go都含有變量定義init函數(shù)時,執(zhí)行的流程又是怎么樣的?

匿名函數(shù)

介紹

Go支持匿名函數(shù),如果我們某個函數(shù)知識希望使用一次,可以考慮使用匿名函數(shù),匿名函數(shù)也可以實現(xiàn)多次調(diào)用。

調(diào)用方式

方式1

在定義匿名函數(shù)時就直接調(diào)用,這種方式匿名函數(shù)只能調(diào)用一次

package main
import (
	"fmt"

)
func main() {
	res1 := func ( n1 int, n2 int) int {
		return n1 + n2
	}(10, 20)
	fmt.Println("res1=", res1)
}

方式2

將匿名函數(shù)賦給一個變量(函數(shù)變量),再通過變量來調(diào)用匿名函數(shù)

package main
import (
	"fmt"
)
func main() {
	//將匿名函數(shù)func (n1 int,n2 int)int賦值給a變量
	//則a的數(shù)據(jù)類型就是函數(shù)類型,此時,我們可以通過a完成調(diào)用
	a := func ( n1 int, n2 int) int {
		return n1 + n2
	}
	res1 := a(10, 20)
	fmt.Println("res1=", res1)
}

到此這篇關(guān)于Go語言中init函數(shù)與匿名函數(shù)使用淺析的文章就介紹到這了,更多相關(guān)Go init函數(shù)與匿名函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go標(biāo)準(zhǔn)容器之Ring的使用說明

    Go標(biāo)準(zhǔn)容器之Ring的使用說明

    這篇文章主要介紹了Go標(biāo)準(zhǔn)容器之Ring的使用說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • golang如何設(shè)置Header Content-type

    golang如何設(shè)置Header Content-type

    這篇文章主要介紹了golang如何設(shè)置Header Content-type問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • GO語言延遲函數(shù)defer用法分析

    GO語言延遲函數(shù)defer用法分析

    這篇文章主要介紹了GO語言延遲函數(shù)defer用法,較為詳細(xì)的分析了GO語言的特性與具體用法,并給出了一個比較典型的應(yīng)用實例,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • Go語言實現(xiàn)Snowflake雪花算法

    Go語言實現(xiàn)Snowflake雪花算法

    雪花算法產(chǎn)生的背景當(dāng)然是twitter高并發(fā)環(huán)境下對唯一ID生成的需求,得益于twitter內(nèi)部牛的技術(shù),雪花算法能夠流傳于至今并且被廣泛使用,本文就詳細(xì)的介紹一下,感興趣的可以了解一下
    2021-06-06
  • golang接口實現(xiàn)調(diào)用修改(值接收者指針接收者)場景詳解

    golang接口實現(xiàn)調(diào)用修改(值接收者指針接收者)場景詳解

    這篇文章主要為大家介紹了golang接口實現(xiàn)調(diào)用修改值接收者指針接收者示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • golang中package?is?not?in?GOROOT報錯的真正解決辦法

    golang中package?is?not?in?GOROOT報錯的真正解決辦法

    這篇文章主要給大家介紹了關(guān)于golang中package?is?not?in?GOROOT報錯的真正解決辦法,文中通過圖文介紹的非常詳細(xì),對同樣遇到這個問題的朋友具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-03-03
  • Golang實現(xiàn)單元測試中的邏輯層

    Golang實現(xiàn)單元測試中的邏輯層

    前面我們完成了最麻煩的數(shù)據(jù)層的單元測試,今天我們來看看單元測試中最容易做的一層,數(shù)據(jù)邏輯層,也就是我們通常說的 service 或者 biz 等
    2023-03-03
  • Golang Map實現(xiàn)賦值和擴(kuò)容的示例代碼

    Golang Map實現(xiàn)賦值和擴(kuò)容的示例代碼

    這篇文章主要介紹了Golang Map實現(xiàn)賦值和擴(kuò)容的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Go中string與[]byte高效互轉(zhuǎn)的方法實例

    Go中string與[]byte高效互轉(zhuǎn)的方法實例

    string與[]byte經(jīng)常需要互相轉(zhuǎn)化,普通轉(zhuǎn)化會發(fā)生底層數(shù)據(jù)的復(fù)制,下面這篇文章主要給大家介紹了關(guān)于Go中string與[]byte高效互轉(zhuǎn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • 源碼剖析Golang中singleflight的應(yīng)用

    源碼剖析Golang中singleflight的應(yīng)用

    這篇文章主要為大家詳細(xì)介紹了如何利用singleflight來避免緩存擊穿,并剖析singleflight包的源碼實現(xiàn)和工作原理,感興趣的可以了解下
    2024-03-03

最新評論