在我們以前熟悉的各種語言中都有這樣幾個概念: 系統路徑,官方包路徑,第三方包路徑,項目路徑。
好了go中只有兩個路徑.
GOROOT: go的安裝路徑,官方包路徑根據這個設置自動匹配
GOPATH: 工作路徑(其實不應該用中文翻譯解釋,直接說GOPATH更合適)
問題:項目路徑和第三方包路徑呢? 首先:go中是沒有項目這個概念的,只有包。可執行包只是特殊的一種,類似我們常說的項目 GOPATH可以設置多個,不管是可執行包,還是非可執行包,通通都應該在某個 $GOPATH/src下。
如果你這樣做了,那麼就不會出現本地包這種寫法了
<!-- lang: cpp -->import "./pathtopackage"
比如你可以把你的可執行(項目)包,安放在某個 $GOPATH/src下,例如 $GOPATH/src/app/youpackagedir
這樣本地包的import就變成
<!-- lang: cpp -->import "app/yourpackagedir/subpackage"
這樣有什麼用呢?
可以使用 go install 你的子包,有利於go build的時間,如果子包較大,那就更明顯了
go code的自動完成可以用了