go語言中包(package)與java中的包(package)非常類似,都是組織代碼的方式,而且都和磁盤上的目錄結構存在對應關系。
go語言中,包名一般為go代碼所在的目錄名,但是與java不同的是,go語言中包名隻有一級,而在java中包名是以點分割的多級目錄組合的。
go語言中,引用包時需要以GOPATH/src目錄為相對根目錄,依次輸入下面的各級目錄名。
如:環境變量GOPATH = ~/go
包hello下有hello.go,包所在的磁盤路徑為:
~/go/src/golang_everyday/hello
也就是說,hello.go的路徑為:
~/go/src/golang_everyday/hello/hello.go
則在其它檔案中引用該go檔案時,代碼應為:
import "golang_everyday/hello"
如果存在多個GOPATH,編譯時,go會挨着去每個GOPATH的src下找,直到找到為止。
main是一個特殊的package名字,類似Java的main函數,GO的可執行程式必須在main package下,main包所在的檔案夾一般都不叫main。
在同一個package裡,多個檔案被go編譯器看作是一個檔案一樣,是以,這多個檔案中不能出現相同的全局變量和函數,一個例外是init函數;而同一個package的不同檔案可以直接引用互相之間的資料。
-------------------------------------
歡迎關注微信公衆号
golang_everyday 每日Go語言,每日推出一篇學習文章,歡迎閱讀。
掃碼關注更友善