不,在Golang沒有相對的進口。
您應該使用考慮GOPATH的abs路徑:
GOPATH環境變量指定您的工作空間的位置。這可能是開發Go代碼時需要設置的唯一環境變量。要開始,請創建一個工作空間目錄並相應地設置GOPATH。見:https://golang.org/doc/code.html#GOPATH
導入路徑:
一個導入路徑是唯一標識包的字符串。程序包的導入路徑對應於其在工作區內或遠程存儲庫中的位置(如下所述)。
標準庫中的軟件包被賦予短的導入路徑,如「fmt」和「net/http」。對於你自己的軟件包,你必須選擇一個基本路徑,這個基本路徑不可能與未來添加到標準庫或其他外部庫中相沖突。
如果你把你的代碼的源代碼庫的地方,那麼你應該使用源代碼庫的根目錄下的基本路徑。例如,如果您在github.com/user上有GitHub帳戶,那應該是您的基本路徑。
注意,你並不需要在你的代碼發佈到遠程倉庫之前,你可以建造它。組織代碼就好像你將在某天發佈一樣,這只是一個好習慣。在實踐中,您可以選擇任意路徑名稱,只要它是標準庫和更大的Go生態系統所獨有的。
例子:
這個例子假設你已經在你的操作系統環境中設置GOPATH=/goworkdir
。
文件:goworkdir/src/project1/utils/auth.go
package utils
func Test1() string {
return "Test1"
}
文件:goworkdir/src/project1/controllers/login.go
package controllers
import "project1/utils"
func Test2() string {
return utils.Test1()
}
文件:goworkdir/src/project1/main.go
package main
import (
"fmt"
"project1/controllers"
)
func main() {
fmt.Println(controllers.Test2())
}
現在,如果你go run main.go
你應該看到輸出:
Test1