小时候以为长大能掌控一切,长大后发现,连早上几点起床都由不得自己。
好消息来了,goland 2025.2 在前几天正式发布,和以往的更新不一样,这次带来对开发者很多利好的新特性。
下面就来随我一起看看都有哪些令人感动的新特性吧。
第一个,nil 解引用分析
什么是 nil 解引用呢?
在 Go 语言中,nil 表示一个指针没有指向任何有效的内存地址。当程序试图访问一个 nil 指针 所指向的值(即解引用该指针)时,就会触发运行时错误。
举个例子可以更好的说明这个概念
func getUser() *User { return nil }
u := getUser()
fmt.Println(u.Name) // 🔴 此处显示警告:可能的nil解引用
安全的操作是这样的
if u != nil {
fmt.Println(u.Name) // ✅ 安全操作(已判空)
}
简单来说,就是类似idea里面的Java 空指针检查。
除了上面简单的检查,他还支持跨函数检查nil解引用的问题。
下面来看看这个例子
从上面的代码来看,似乎感觉代码并没有什么问题,但是 goland 却给出了 nil 解引用的提示
到底是什么原因呢?那我们需要深入看看 NewUser 这个方法
我们看到当发生 err 的时候,方法返回了 nil。
但是我们通常的代码可能是这样写的
会把当前的 err 返回出来,然后在使用返回的 user 之前我们会检查 err 是否为 nil。
但是 nil 解引用的问题仍然存在,我们还需要进一步看看 CreateUser 的代码
我们发现,在校验 age 的时候,我们对 user 和 err 都返回了 nil。
那我们也需要如下处理,才能最终解决 nil 解引用的问题。
可以看到这样层层的检查对人来说确实是一件繁琐的事情,现在都可以交给 goland 这样强大的工具来自动检测了。
第二个,欢迎页更加友好
新版的goland的欢迎页会作为一个tab页存在,这样你在打开goland的时候,仍然可以访问常用的功能,比如创建项目,打开项目,和其他经常用到的工具比如http client,docker,terminal等,和vscode的欢迎页类似。
第三个,只能发现端点
这个功能非常实用,如果你使用国idea啦开发springboot项目的话,idea就会在每个接口的左边
点击左边的带有网络图标的小工具,就可以自动为这个接口生成http文件。
而现在goland也终于支持这样的功能,方便我们快速测试接口,再也不需要用到postman这样的工具了。
goland目前能检测如下几种情况的端点
- 函数名称
-
r.GET("/path", handler)
* 方法前缀模式
* ```
http.HandleFunc("POST /item", handler)
函数参数
r.Method("DELETE", "/item", handler)
链式方法调用
*
* ```
r.HandleFunc("/item", handler).Methods("PUT")
适用于使用标准 net/http 软件包以及 Chi、Gin 和 Gorilla 定义的处理程序。
结语
GoLand 2025.2 新特性是开发路上的强大助力 ,不仅提升效率,更是迈向卓越编程的阶梯。从现在起,利用好这些特性,优化代码,精进技术,做一个高效的 Gopher!