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

Go語言之init函數(shù)

 更新時間:2022年07月12日 16:01:07   作者:奮斗的大橙子  
Go語言有一個特殊的函數(shù)init,先于main函數(shù)執(zhí)行,實現(xiàn)包級別的一些初始化操作。這篇文章介紹了Go中的Init函數(shù),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

init函數(shù)會在main函數(shù)執(zhí)行之前進行執(zhí)行、init用在設(shè)置包、初始化變量或者其他要在程序運行前優(yōu)先完成的引導(dǎo)工作。

舉例:在進行數(shù)據(jù)庫注冊驅(qū)動的時候。

這里有init函數(shù)

package postgres

package postgres
import (
    "database/sql"
    "database/sql/driver"
    "errors"
)
// PostgresDriver provides our implementation for the
// sql package.
type PostgresDriver struct{}
// Open provides a connection to the database.
func (dr PostgresDriver) Open(string) (driver.Conn, error) {
    return nil, errors.New("Unimplemented")
}
var d *PostgresDriver
// init is called prior to main.
func init() {
    d = new(PostgresDriver)
    sql.Register("postgres", d)
}

這里是main函數(shù)

// Sample program to show how to show you how to briefly work
// with the sql package.
package main

import (
    "database/sql"

    _ "github.com/goinaction/code/chapter3/dbdriver/postgres"
)

// main is the entry point for the application.
func main() {
    sql.Open("postgres", "mydb")
}

可以看到這里main函數(shù)中使用看sql.Open 就是得益于上面的init函數(shù)

_ "github.com/goinaction/code/chapter3/dbdriver/postgres"

下劃線加上包名的作用就是,執(zhí)行這個包的init函數(shù)。

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 詳解如何在Go服務(wù)中做鏈路追蹤

    詳解如何在Go服務(wù)中做鏈路追蹤

    使用 Go 語言開發(fā)微服務(wù)的時候,需要追蹤每一個請求的訪問鏈路,本文主要介紹了如何在Go 服務(wù)中做鏈路追蹤,感興趣的可以了解一下
    2021-09-09
  • Go語言 如何實現(xiàn)RSA加密解密

    Go語言 如何實現(xiàn)RSA加密解密

    這篇文章主要介紹了Go語言實現(xiàn)RSA加密解密的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Go中defer使用場景及注意事項

    Go中defer使用場景及注意事項

    defer 會在當(dāng)前函數(shù)返回前執(zhí)行傳入的函數(shù),它會經(jīng)常被用于關(guān)閉文件描述符、關(guān)閉數(shù)據(jù)庫連接以及解鎖資源。這篇文章主要介紹了Go中defer使用注意事項,需要的朋友可以參考下
    2021-12-12
  • Go語言類型轉(zhuǎn)換的方式有哪些

    Go語言類型轉(zhuǎn)換的方式有哪些

    本文主要介紹了Go語言類型轉(zhuǎn)換的方式有哪些,類型轉(zhuǎn)換主要有4種,分別為斷言類型轉(zhuǎn)換、顯式類型轉(zhuǎn)換、隱式類型轉(zhuǎn)換、強制類型轉(zhuǎn)換,感興趣的可以了解一下
    2023-11-11
  • golang中"var"與":="的區(qū)別解析

    golang中"var"與":="的區(qū)別解析

    這篇文章主要介紹了golang中“var”與“:=”的區(qū)別,使用var關(guān)鍵字是Go最基本的定義變量方式,有時也會使用到:=來定義變量,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • 實時通信的服務(wù)器推送機制 EventSource(SSE) 簡介附go實現(xiàn)示例代碼

    實時通信的服務(wù)器推送機制 EventSource(SSE) 簡介附go實現(xiàn)示例代碼

    EventSource是一種非常有用的 API,適用于許多實時應(yīng)用場景,它提供了一種簡單而可靠的方式來建立服務(wù)器推送連接,并實現(xiàn)實時更新和通知,這篇文章主要介紹了實時通信的服務(wù)器推送機制 EventSource(SSE)簡介附go實現(xiàn)示例,需要的朋友可以參考下
    2024-03-03
  • Go 語言中關(guān)于接口的三個

    Go 語言中關(guān)于接口的三個

    這篇文章主要介紹了Go 語言中關(guān)于接口的三個"潛規(guī)則",本文通過實例代碼相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Go語言map元素的刪除和清空

    Go語言map元素的刪除和清空

    本文主要介紹了Go語言map元素的刪除和清空,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • go語言實現(xiàn)mqtt協(xié)議的實踐

    go語言實現(xiàn)mqtt協(xié)議的實踐

    MQTT是一個基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議。本文主要介紹了go語言實現(xiàn)mqtt協(xié)議的實踐,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Go語言函數(shù)的延遲調(diào)用(Deferred Code)詳解

    Go語言函數(shù)的延遲調(diào)用(Deferred Code)詳解

    本文將介紹Go語言函數(shù)和方法中的延遲調(diào)用,正如名稱一樣,這部分定義不會立即執(zhí)行,一般會在函數(shù)返回前再被調(diào)用,我們通過一些示例來了解一下延遲調(diào)用的使用場景
    2022-07-07

最新評論