在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中文网其他相关文章!