首頁 >後端開發 >Golang >為什麼相對導入在我的主目錄中有效,但在 GOPATH 中無效?

為什麼相對導入在我的主目錄中有效,但在 GOPATH 中無效?

Patricia Arquette
Patricia Arquette原創
2024-10-31 13:52:01224瀏覽

Why Do Relative Imports Work in My Home Directory but Not Inside the GOPATH?

在Go 中導入本地包:為什麼GOPATH 和主目錄會有所不同

Go 提供了一個使用相對路徑導入本地包的便捷方法路徑。然而,當套件駐留在 GOPATH 中時,這種方法有其限制。

GOPATH 的角色

GOPATH 指定 Go 將在其中搜尋包的目錄。在提供的範例中,專案位於 $GOPATH/src/project,這表示 Go 將期望套件名稱與目錄結構相符。

相對導入限制

相對導入路徑可讓您引用目前目錄或其子目錄中的包。在這種情況下,“models”套件位於專案的“models”子目錄中。

但是,當使用 go build 或 go install 編譯或安裝套件時,不完全支援相對導入。這些工具期望包路徑是絕對路徑或遵循「如何編寫 Go 程式碼」中所述的標準結構。

主目錄異常

當項目位於在主目錄(例如 ~/project)中,相對導入按預期工作。這是因為主目錄不是 GOPATH 的一部分,Go 會在目前目錄及其子目錄中搜尋套件。

解決方案

克服限制GOPATH 中的相對導入,建議根據「如何寫 Go 程式碼」中提供的指南來建立程式碼。這涉及使用絕對導入路徑或以與 GOPATH 結構一致的方式組織套件。

以上是為什麼相對導入在我的主目錄中有效,但在 GOPATH 中無效?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn