GoLand 2022.1 路线图:全面支持泛型
大家好,我是站长 polarisxu。
最近 GoLand 2021.3 发布,这是 2021 年最后一次重大更新。这些天官方又宣布了 GoLand 2022.1 路线图,注意,以下特性不一定全部会在 GoLand 2022.1 中实现。
GoLand 2022.1 中第一个会包含的特性就是支持泛型,一定程度上说,该版本主要为 Go1.18 和泛型准备。
## 01 支持泛型
看支持泛型需要添加哪些特性。
### 编辑器中的编译错误警告
GoLand 将通过在编辑器中为泛型提供编译错误警告来赶上 Go 编译器。例如,当使用类型参数时,GoLand 2022.1 将报告传递给泛型函数的不兼容类型或在类型约束中无效使用 `~` 等等。
### 代码完成
GoLand 将在下拉菜单中显示类型参数,在泛型类型中自动插入括号,为类型约束提供智能代码完成等。
### 重构
更改签名和内联方法也将更新为支持泛型!
### 调试器和分析器
GoLand 将正确显示泛型类型和函数,并允许跳转到它们的定义处。
### 格式化程序
泛型的代码格式将与 gofmt 保持一致。
## 02 支持 Go 1.18
将支持 Go1.18 中的 workspace 模式(即[工作区模式](https://mp.weixin.qq.com/s/S3I919YZb-bgaEnHgKq7fg)),这将使同时处理多个模块变得更加容易。工作区模式使用名为 go.work 的文件,其中将指定包含工作区的本地模块。如果在工作区模式下调用 go 命令,则该命令将选择在 go.work 中指定的模块和一组一致的依赖项。这将帮助你跨多个模块进行更改,并允许你停止使用 go.mod 中的 replace 指令。
GoLand 已经具有用于模糊测试的代码完成功能,类似于用于测试函数的代码完成。在下一个版本中,可以直接在 IDE 中运行模糊测试。如果你对模糊测试感到好奇,请查看 Go 团队的这篇博客文章:<https://go.dev/blog/fuzz-beta>。
---
根据该版本的路线图,基本可以肯定,GoLand 2022.1 大概率会在 Go1.18 正式发布时和大家见面。