首頁  >  文章  >  後端開發  >  為什麼在 Go 中建立同級模組時會出現錯誤?

為什麼在 Go 中建立同級模組時會出現錯誤?

王林
王林轉載
2024-02-09 12:57:091105瀏覽

为什么在 Go 中创建同级模块时会出现错误?

在Go語言中,建立同級模組時出現錯誤是一個常見的問題。這個問題的原因通常是由於模組的命名空間衝突所導致的。當我們在同一個目錄下建立兩個具有相同名稱的模組時,Go編譯器會認為這是衝突的,從而導致錯誤的發生。解決這個問題的方法是,將這些模組分別放置在不同的目錄下,以避免命名空間衝突。另外,我們也可以使用套件別名的方式來解決模組衝突的問題。透過為其中一個模組取一個別名,就可以避免命名空間衝突,從而成功創建同級模組。在實際開發中,我們需要注意模組命名的規範性,並避免出現同名模組的情況,以避免這個錯誤的發生。

問題內容

這是我的檔案系統:

Go/
  HelloWorld/
    go.mod
    go.sum
    hello.go
  GoQuote/
    go.mod

我安裝了這個模組,這是我的 HelloWorld/go.mod:

module example/hello

go 1.21.3

require (
    golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c // indirect
    rsc.io/quote/v4 v4.0.1
    rsc.io/sampler v1.3.0 // indirect
)

和 go.sum:

golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c h1:qgOY6WgZOaTkIIMiVjBQcw93ERBE4m30iBm00nkL0i8=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
rsc.io/quote/v4 v4.0.1 h1:i/LHLEinr65wwTCqlP4OnMoMWeCgnFIZFvifdXNK+5M=
rsc.io/quote/v4 v4.0.1/go.mod h1:w/DafQky66grMesu3uPhdDMS3knhBippwwemZtMOyCI=
rsc.io/sampler v1.3.0 h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=

錯誤如下: 無法匯入rsc.io/quote/v4(在GOROOT或GOPATH中找不到套件「rsc.io/quote/v4」)compilerBrokenImportundefined: quotecompilerUndeclaredName

在建立 GoQuote 目錄並執行 go mod init example.com/GoQuote 指令之前,沒有出現任何錯誤。 我是 Go 新手(第一個小時!),不知道問題是什麼。

我嘗試保存所有文件(我在 VS code 中),但沒有成功。

解決方法

看起來問題是檔案系統的結構......如果我將其更改為

Go/
  go.mod
  go.sum
  hello.go
GoQuote/
  go.mod

那麼就沒有錯誤。

以上是為什麼在 Go 中建立同級模組時會出現錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除