redeclared as imported package name previous declaration
,所以這種狀況下須要給包起別名避免衝突。在 Go
支持 Go Modules
以後,編譯時編譯器會從工做目錄(當前所在目錄)開始並逐級向上查找是否具備 go.mod
文件。code
go.mod
文件中聲明的 module
名稱就視做 go.mod
所在的路徑,而後以指定的 main
包爲依賴入口,全部以 go.mod
中聲明的 module
名稱開頭的導入路徑都以 go.mod
所在的路徑爲相對路徑進行包的查找導入。全部須要導入的路徑中若是在 go.mod
中指定了版本,則從 $GOPATH/pkg/mod/
下取得相應版本進行導入,若是沒有被指定則從 $GOPATH/src/
或 $GOROOT/src/
中進行查找導入。$GOPATH/src/
或 $GOROOT/src/
中進行查找導入。go.mod
)。