首页 >后端开发 >Golang >为什么在 Go 中创建同级模块时会出现错误?

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

王林
王林转载
2024-02-09 12:57:091121浏览

为什么在 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删除