前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Golang升级1.18之后panic()报错

Golang升级1.18之后panic()报错

原创
作者头像
KunkkaWu
修改2023-03-17 14:20:43
3.4K0
修改2023-03-17 14:20:43
举报
文章被收录于专栏:算法协议算法协议

报错:

本地Golang升级到1.18后,发现原本写的一些代码在Goland中出现了一些红色的波浪线,将鼠标移到错误提示上,有如下的显示:

代码语言:txt
复制
Cannot use 'err' (type error) as the type any
image
image

源代码:

代码语言:go
复制
conn, err := listener.Accept()
if err != nil {
    panic(err)   // 1.18后Goland会报错,hong
}
buf := make([]byte, 1024)

原因

Golang 1.18 版本开始引入any类型可以替代空接口 interface{}

解决

代码语言:go
复制
var err any = "异常报错"
panic(err)

//或者
panic(any("异常报错"))

但是很奇怪 ?

代码在执行的时候并没有报错,而仅仅是在Goland中会有这个错误提示呢?

有没有一种可能是,Goland版本低了对Go 1.18的新特性支持的不是很友好呢?

搜索Goland发布日志

image
image

点击Release Nodes进入发布日志

image
image

发现确实有这么一条更新日志:

Go 1.18 Generics: Type any isn't properly supported: Cannot use ... (type string) as the type any

划重点

那就是说明在Go 1.18版本之后,Goland的2021.3.3之前的版本都会有这个BUG。

尝试升级Goland版本

image
image
image
image

升级完成后解决问题

image
image

总结

以上两种方式都可以解决golang1.18版本后,goland中panic(err) 对string类型检查报错的问题。

但是最好还是去升级一下Goland,这样对代码会更友好一些。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 报错:
  • 源代码:
  • 原因
  • 解决
  • 但是很奇怪 ?
  • 搜索Goland发布日志
  • 划重点
  • 尝试升级Goland版本
  • 升级完成后解决问题
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com