go - go 1.18.1 内置库中的主要包

标签 go version

我正在尝试将项目的 golang 版本从 1.15 升级到 1.18.1。我更改了 go.mod 中的版本并执行了 go mod tidy 命令。

奇怪的是,我的主文件中有以下错误,它本身有一个 main 函数:

'main' collides with name declared in this package

它发生在 net/httpsyscall 库中:

  • 网络/http

    Found several packages [http, main] in '/usr/local/go-1.18.1/src/net/http;/usr/local/go-1.18.1/src/net/http'
    
  • 系统调用

    Found several packages [syscall, main] in '/usr/local/go-1.18.1/src/syscall;/usr/local/go-1.18.1/src/syscall'
    

正如我检查的那样,警告是正确的,并且两个库中都有主要包。

我应该使用替代库还是应该更改导入它们的方式?

编辑 1:

这是一个 IDE 错误,我使用的是 Goland。

最佳答案

这是 reported recently (2022 年 4 月)(中文链接)

https://img-blog.csdnimg.cn/d93c6e9fb3584a00a52bf1949da1ee02.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS2lt6YeRNg==,size_20,color_FFFFFF,t_70,g_se,x_16

相关评论的译文是:

The reason for the above error: Your Go language version has been upgraded, and the IDE version is too old to support it.

For example, in my case, Go was upgraded to 1.18, and Goland was not upgraded.

因此请确保您的 IDE(GoLand 或 VSCode)已完全更新(对于 VSCode,使用 latest gopls )。

关于go - go 1.18.1 内置库中的主要包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71918001/

相关文章:

c# - 在只有 4.0 框架的机器上引用 2.0 库运行 .NET 4.0 应用程序

Gomail.v2 - 来自 Slice 的多个收件人

go - 使用 golang 扩展 websocket 连接

return - 从函数返回语句转到数组 slice

bash - 在 Mac 上升级 bash

google-app-engine - Google App Engine 版本号?

version - 语义版本控制是否适用于源或二进制兼容性?

database - 支持 Go 的 NoSQL 数据库列表

go - context.TODO() 或 context.Background(),我更喜欢哪一个?

r - 在新R版本中用旧版本编写的代码编译问题