在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」)compilerBrokenImport
和
undefined: quotecompilerUndeclaredName
在建立 GoQuote 目錄並執行 go mod init example.com/GoQuote
指令之前,沒有出現任何錯誤。
我是 Go 新手(第一個小時!),不知道問題是什麼。
我嘗試保存所有文件(我在 VS code 中),但沒有成功。
看起來問題是檔案系統的結構......如果我將其更改為
Go/ go.mod go.sum hello.go GoQuote/ go.mod
那麼就沒有錯誤。
以上是為什麼在 Go 中建立同級模組時會出現錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!