一 包的導入語法
在go語言中一個包(文件夾)中可以包含多個 go 文件,每一個文件通過文件第一行的 package 來指明自己所在的包,原則上應該與自己所在的文件夾同名,但也可以指定為其他名稱,但同一個文件夾下所有的 go文件應該指定相同的包名,不然報錯,當我們在另一個夠文件通過 import 來引入包時,默認引入了此文件夾下的所有夠文件.詳情如下:
在寫Go代碼的時候經常用到import這個命令用來導入包文件,看到的方式參考如下:
import( "fmt" )
然后在代碼里面可以通過如下的方式調用
fmt.Println("hello world")
上面這個fmt是Go語言的標准庫,他其實是去GOROOT下去加載該模塊,當然Go的import還支持如下兩種方式來加載自己寫的模塊:
相對路徑 import "./model" //當前文件同一目錄的model目錄,但是不建議這種方式import
絕對路徑 import "shorturl/model" //加載GOPATH/src/shorturl/model模塊
上面展示了一些import常用的幾種方式,但是還有一些特殊的import,讓很多新手很費解,下面是三種導入包的使用方法。
1. 點操作 有時候會看到如下的方式導入包 import( . “fmt” )
這個點操作的含義就是這個包導入之后在你調用這個包的函數時,你可以省略前綴的包名,也就是前面你調用的fmt.Println(“hello world”) 可以省略的寫成Println(“hello world”)
2. 別名操作 別名操作顧名思義可以把包命名成另一個用起來容易記憶的名字
import( f “fmt” ) 別名操作調用包函數時前綴變成了重命名的前綴,即f.Println(“hello world”)
3. _操作 這個操作經常是讓很多人費解的一個操作符,請看下面這個import
import ( “database/sql” _ “github.com/ziutek/mymysql/godrv” )
_操作其實只是引入該包。當導入一個包時,它所有的init()函數就會被執行,但有些時候並非真的需要使用這些包,僅僅是希望它的init()函數被執行而已。這個時候就可以使用_操作引用該包了。即使用_操作引用包是無法通過包名來調用包中的導出函數,而是只是為了簡單的調用其init函數()。
原文鏈接:https://blog.csdn.net/zhangzhebjut/article/details/25564457