hi, 大家好,我是 hhf。

《Goland 这些实操技巧,你可能还不会!》介绍了日常开发中一些比较好用的技巧。本篇文章继续介绍一些其他比较好用的技巧。

自定义结构 tag

Goland 一个很好用的功能:tag 自动补全。在 struct 结构里,可以在字段类型后敲入 json 或 xml 向结构添加标记。

图片

Goland 默认的 json 都是下滑线格式的。但是有的时候会有特殊的需求。

举个例子:公司对接口返回值的字段是有统一的要求,大部分情况下 json 格式的返回值以下滑线居多,但是也有驼峰格式的。如果遇到这种情况下,该如何调整 tag 自动补全呢?

还有种情况,有些公司会自定义 tag 字段,这些字段 goland 肯定是没有内置的。如果遇到这种情况,也想让 tag 自动补全,该如何做呢?

图片

代码自动同步远程服务器

Goland 看代码是个比较舒服的事情,毕竟 Goland 提供了很多的功能,如:Find Usages, 查看接口实现,Debug 等。

因为种种原因吧,很多情况我们需要将代码推送远程的服务器进行代码的编译工作。通过打包或者 git 同步方式,总归是有点麻烦,有没有一种方式本地修改完代码,自动把代码同步到远程呢?

Goland 恰好提供了这个功能。

图片

go list -m 失败问题

这个一般情况下是下载 go.mod 依赖失败造成的。设置 Goland 的 Goproxy 即可。

图片

代码折叠

我的强迫症属于比较严重的那种。我特别不能接受代码被折叠。

Goland 折叠代码的地方有三处:import 折叠,error 折叠,string format 折叠,如何关闭他们呢?图片

Project 目录自动选择打开的文件

看源码,我们是需要知道当前打开的文件所处的目录的,这样对整个代码流程理解是有帮助的。Goland 默认是不在 Project 目录选择打开的文件的。该如何设置呢?

图片

go 工具推荐

  • golangci-lint[1] 一款集成了 Go 的所有工具链的工具,极好用,可以集成到 goland 中

  • gofumpt[2] 自动将格式化代码替换的工具,用过的都说好,可以集成到 goland 中

  • json to go[3] 一款 chrome 插件,自动将 json 或者 mysql 语句转成对应的 struct,省时省力的神器

欢迎关注公众号。更多学习学习资料分享,关注公众号回复指令:

  • 回复 0,获取 《Go 面经》

  • 回复 1,获取 《Go 源码流程图》

图片

参考资料

[1] golangci-lint: https://github.com/golangci/golangci-lint

[2] gofumpt: https://github.com/mvdan/gofumpt

[3] json to go: https://chrome.google.com/webstore/detail/json-to-go/adibamafcjbolhaaccnhdebpncglaohb