Golang import 導(dǎo)入包語(yǔ)法及一些特殊用法詳解
package 的導(dǎo)入語(yǔ)法
寫(xiě) Go 代碼的時(shí)經(jīng)常用到 import 這個(gè)命令用來(lái)導(dǎo)入包,參考如下:
import( "fmt" )
然后在代碼里面可以通過(guò)如下的方式調(diào)用:
fmt.Println( "我愛(ài)腳本之家" )
fmt 是 Go 的標(biāo)準(zhǔn)庫(kù),它其實(shí)是去 GOROOT 下去加載該模塊,當(dāng)然 Go 的 import 還支持如下兩種方式來(lái)加載自己寫(xiě)的模塊:
相對(duì)路徑
import "./model" // 當(dāng)前文件同一目錄的 model 目錄,但是不建議這種方式 import
絕對(duì)路徑
import "shorturl/model" // 加載 GOPATH/src/shorturl/model 模塊
package 的導(dǎo)入的特殊用法
上面展示了一些 import 常用的幾種方式,但是還有一些特殊的 import ,讓很多新手很費(fèi)解,下面是三種導(dǎo)入包的使用方法。
點(diǎn)操作
有時(shí)候會(huì)看到如下的方式導(dǎo)入包:
import( . "fmt" )
這個(gè)點(diǎn)操作的含義就是這個(gè)包導(dǎo)入之后在你調(diào)用這個(gè)包的函數(shù)時(shí),你可以省略前綴的包名,也就是前面你調(diào)用的:
fmt.Println( "我愛(ài)腳本之家" )
可以省略的寫(xiě)成:
Println( "我愛(ài)腳本之家" )
別名操作
別名操作顧名思義可以把包命名成另一個(gè)用起來(lái)容易記憶的名字:
import( f "fmt" )
別名操作調(diào)用包函數(shù)時(shí)前綴變成了重命名的前綴,即:
f.Println( "我愛(ài)腳本之家" )
下劃線(xiàn)操作
這個(gè)操作經(jīng)常是讓很多人費(fèi)解的一個(gè)操作符,請(qǐng)看下面這個(gè) import
import ( “database/sql” _ “github.com/ziutek/mymysql/godrv” )
下滑線(xiàn) “_” 操作其實(shí)只是引入該包。當(dāng)導(dǎo)入一個(gè)包時(shí),它所有的 init() 函數(shù)就會(huì)被執(zhí)行,但有些時(shí)候并非真的需要使用這些包,僅僅是希望它的 init() 函數(shù)被執(zhí)行而已。這個(gè)時(shí)候就可以使用 “_” 操作引用該包了。即使用 “_” 操作引用包是無(wú)法通過(guò)包名來(lái)調(diào)用包中的導(dǎo)出函數(shù),而是只是為了簡(jiǎn)單的調(diào)用其 init() 函數(shù)。
更多關(guān)于Golang import 導(dǎo)入包語(yǔ)法及一些特殊用法請(qǐng)查看下面的相關(guān)鏈接
相關(guān)文章
Go語(yǔ)言實(shí)現(xiàn)一個(gè)Http?Server框架(一)?http庫(kù)的使用
本文主要介紹用Go語(yǔ)言實(shí)現(xiàn)一個(gè)Http?Server框架中對(duì)http庫(kù)的基本使用說(shuō)明,文中有詳細(xì)的代碼示例,感興趣的同學(xué)可以借鑒一下2023-04-04golang時(shí)間及時(shí)間戳的獲取轉(zhuǎn)換
本文主要介紹了golang時(shí)間及時(shí)間戳的獲取轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06Golang服務(wù)的請(qǐng)求調(diào)度的實(shí)現(xiàn)
Golang服務(wù)請(qǐng)求調(diào)度是一種使用Go語(yǔ)言實(shí)現(xiàn)的服務(wù)請(qǐng)求管理方法,本文主要介紹了Golang服務(wù)的請(qǐng)求調(diào)度的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08Golang異常處理之defer,panic,recover的使用詳解
這篇文章主要為大家介紹了Go語(yǔ)言異常處理機(jī)制中defer、panic和recover三者的使用方法,文中示例代碼講解詳細(xì),需要的朋友可以參考下2022-05-05Go語(yǔ)言學(xué)習(xí)之循環(huán)語(yǔ)句使用詳解
這篇文章主要為大家介紹了Go語(yǔ)言中的常用循環(huán)語(yǔ)句的使用,例如:for循環(huán)、for-each、break等,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-04-04源碼剖析Golang中singleflight的應(yīng)用
這篇文章主要為大家詳細(xì)介紹了如何利用singleflight來(lái)避免緩存擊穿,并剖析singleflight包的源碼實(shí)現(xiàn)和工作原理,感興趣的可以了解下2024-03-03Go語(yǔ)言sync.Map詳解及使用場(chǎng)景
Go語(yǔ)言中的sync.Map是一個(gè)高效的并發(fā)安全映射結(jié)構(gòu),適用于高并發(fā)讀多寫(xiě)少的場(chǎng)景,它通過(guò)讀寫(xiě)分離、無(wú)鎖讀取路徑、寫(xiě)入時(shí)的鎖保護(hù)等機(jī)制,提高了讀取性能并減少了鎖競(jìng)爭(zhēng),sync.Map不需要手動(dòng)管理鎖,降低了編程復(fù)雜性,適合需要簡(jiǎn)單并發(fā)訪(fǎng)問(wèn)的場(chǎng)合2024-10-10