最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語言 init函數(shù)的具體使用

 更新時間:2024年09月26日 11:00:09   作者:JSON_L  
init()函數(shù)是Go語言中一種特殊的函數(shù),用于在包被導入時執(zhí)行一次性的初始化操作,本文就來介紹一下Go語言 init函數(shù)的具體使用,感興趣的可以了解一下

init函數(shù)

C語言沒有init函數(shù),C語言一般需要自己去寫init,然后在構造函數(shù)中調(diào)用

Go語言自帶init函數(shù),每一個包都可以包含一個或多個init函數(shù)

這個init會在包被引用的時候(import)進行自動調(diào)用。

init函數(shù)演示

 init函數(shù)沒有參數(shù),沒有返回值,原型固定如下

一個包中包含多個init時,調(diào)用順序是不確定的。

同一個包中多個文件都可以有init函數(shù)。

創(chuàng)建減法函數(shù)包

創(chuàng)建test文件夾。

創(chuàng)建減法文件

在test文件夾中創(chuàng)建sub文件夾,在其中創(chuàng)建sub.go。

示例如下:

package sub

import "fmt"

// init函數(shù)沒有參數(shù),沒有返回值,原型固定如下
// 一個包中包含多個init時,調(diào)用順序是不確定的

func init()  {
   fmt.Println("這個是 package sub 中的第一個 init()")
}

func init()  {
   fmt.Println("這個是 package sub 中的第二個 init()")
}

func Sub(a, b int) int {
   return a - b
}

創(chuàng)建入口文件調(diào)用

在test文件夾中創(chuàng)建main.go引入并調(diào)用減法函數(shù)。

示例如下:

package main

import (
   "fmt"
   "test/sub"
)

func main() {
   res2 := sub.Sub(10, 6)
   fmt.Println("10-6=", res2)
}

運行結果:

這個是 package sub 中的第一個 init()
這個是 package sub 中的第二個 init()
10-6= 4

創(chuàng)建減法同級函數(shù)

在減法函數(shù)文件創(chuàng)建同命名空間函數(shù)文件sub2,并在減法函數(shù)中調(diào)用。

在go語言中,同一層級目錄,不允許出現(xiàn)多個包名。

由于Sub2 test2與sub.go在同一個包下面,所以可以使用,并且不需要sub.形式。

示例如下:

package sub

import "fmt"

func Sub2()  {
   fmt.Println("Sub2 func")
}

func test2()  {
   fmt.Println("test func")
}

運行結果:

這個是 package sub 中的第一個 init()
這個是 package sub 中的第二個 init()
Sub2 func
test func
10-6= 4

_形式

init函數(shù)時不允許用戶顯式調(diào)用的。

有的時候引用一個包,可能只想使用這個包里面的init函數(shù)(mysq1iinit對驅(qū)動進行初始化)

但是不想引用包中的其他函數(shù),為了防止編譯器出錯,可以使用_形式來處理。

示例如下:

package main

import (
   //"fmt"
   _ "test/sub" // 此時只會調(diào)用sub里的init函數(shù),編譯還不會報錯。
)

func main() {
   //res2 := sub.Sub(10, 6)
   //fmt.Println("10-6=", res2)
}

運行結果:

這個是 package sub 中的第一個 init()
這個是 package sub 中的第二個 init()

總結

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

相關文章

  • Golang實現(xiàn)IP地址轉整數(shù)的方法詳解

    Golang實現(xiàn)IP地址轉整數(shù)的方法詳解

    在 Go 語言中,將 IP 地址轉換為整數(shù)涉及到解析 IP 地址并處理其字節(jié)表示,本文給大家介紹了Golang實現(xiàn)IP地址轉整數(shù)的方法,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下
    2024-02-02
  • Golang設計模式之適配器模式詳細講解

    Golang設計模式之適配器模式詳細講解

    這篇文章主要介紹了使用go實現(xiàn)適配器模式,這個模式就是用來做適配的,它將不兼容的接口轉換為可兼容的接口,讓原本由于接口不兼容而不能一起工作的類可以一起工作,需要的朋友可以參考下
    2023-01-01
  • 關于Go 是傳值還是傳引用?

    關于Go 是傳值還是傳引用?

    這篇文章主要討論Go語言 是傳值還是傳引用?文章先從Go 官方的定義展開,隨后是傳值和傳引用得介紹到map 和 slice得區(qū)別,需要的小伙伴可以參考一下文章得具體內(nèi)容
    2021-10-10
  • golang版本切換的實現(xiàn)

    golang版本切換的實現(xiàn)

    本文主要介紹了golang版本切換的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2026-05-05
  • golang結構體slice排序方式

    golang結構體slice排序方式

    go語言的slice()不僅可以對int類型的數(shù)組進行排序,還可以對struct類型的數(shù)組進行排序,排序函數(shù)包括Slice()、SliceStable()和SliceIsSorted(),結構體可以定義為更復雜的類型
    2025-12-12
  • Gin 路由與路由文件分組的實現(xiàn)實例

    Gin 路由與路由文件分組的實現(xiàn)實例

    本文主要介紹了Gin 路由與路由文件分組的實現(xiàn)實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-11-11
  • golang實現(xiàn)協(xié)程池的方法示例

    golang實現(xiàn)協(xié)程池的方法示例

    本文主要介紹了golang實現(xiàn)協(xié)程池的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-02-02
  • Go語言針對Map的11問你知道幾個?

    Go語言針對Map的11問你知道幾個?

    Go?Map?的?11?連問,你頂?shù)昧寺?這篇文章小編為大家準備了?Go?語言?Map?的?11?連問,相信大家看完肯定會有幫助的,感興趣的小伙伴可以收藏一波
    2023-05-05
  • Go?跨域中間件解決CORS問題

    Go?跨域中間件解決CORS問題

    跨域問題CORS是前端開發(fā)人員經(jīng)常遇到的問題,本文主要介紹了Go?跨域中間件解決CORS問題,具有一定的參考價值,感興趣的可以了解一下
    2025-04-04
  • Go語言通過chan進行數(shù)據(jù)傳遞的方法詳解

    Go語言通過chan進行數(shù)據(jù)傳遞的方法詳解

    這篇文章主要為大家詳細介紹了Go語言如何通過chan進行數(shù)據(jù)傳遞的功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-06-06

最新評論

浦东新区| 青阳县| 青河县| 新安县| 石台县| 嘉定区| 吉隆县| 连云港市| 旺苍县| 车险| 卢氏县| 陵川县| 图们市| 永安市| 云霄县| 绥中县| 宝坻区| 舒城县| 海伦市| 柳林县| 图木舒克市| 石屏县| 云龙县| 保康县| 沂南县| 保靖县| 林甸县| 麻阳| 兴安县| 珠海市| 浙江省| 同德县| 十堰市| 长治县| 普安县| 治县。| 建昌县| 赫章县| 五寨县| 南雄市| 馆陶县|