Go代码格式化gofmt如何使用


本篇内容介绍了“Go代码格式化gofmt如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!对于一门编程语言来说,代码格式化是最容易引起争议的一个问题,不同的开发者可能会有不同的编码风格和习惯,但是如果所有开发者都能使用同一种格式来编写代码,开发者就可以将宝贵的时间专注在语言要解决的问题上。Golang的开发团队制定了统一的官方代码风格,并且推出了gofmt工具(gofmt或go fmt)来帮助开发者格式化他们的代码到统一的风格。Gofmt格式化Go程序。它使用制表符进行缩进,使用空格进行对齐。如果没有显式路径,它将处理标准输入。给定一个文件,它对文件进行操作;给定一个目录,它递归地操作该目录中的所有.go文件。(忽略以句点开头的文件。)默认情况下,gofmt将重新格式化的源打印到标准输出。有关gofmt的更多信息,请参见“go doc cmd/gofmt”。用法:
gofmt [flags] [path …]The flags are:
-cpuprofile string
将CPU配置文件写入此文件
-d
不将重新格式化的源打印到标准输出。
如果一个文件的格式与gofmt的不同,则将差异部分打印到标准输出。
-e
打印所有(包括虚假)错误。
-l
不将格式化的源打印到标准输出。
如果文件的格式与 gofmt 不同,则将其名称打印到标准输出。
-r rule(string)
在重免费云主机域名新格式化之前,对源应用重写规则(例如,’a[b:len(a)] -> a[b:]’)
-s
尝试简化代码(在应用重写规则后,如果有的话)。
-w
不将重新格式化的源打印到标准输出。
如果文件的格式与 gofmt 不同,则用 gofmt 的版本覆盖它。
如果在覆盖期间发生错误,原始文件将从自动备份中恢复gofmt默认不对代码进行简化,使用-s参数可以开启简化代码功能,具体来说会进行如下的转换:
gofmt -l -d -w -s [path]去除数组、切片、Map初始化时不必要的类型声明:如下形式的切片表达式:
[]T{T{}, T{}}
将被简化为:
[]T{{}, {}}去除数组切片操作时不必要的索引指定如下形式的切片表达式:
s[a:len(s)]
将被简化为:
s[a:]去除迭代时非必要的变量赋值如下形式的迭代:
for x, _ = range v {…}
将被简化为:
for x = range v {…}
如下形式的迭代:
for _ = range v {…}
将被简化为:
for range v {…}不过这可能会导致与早期版本的 Go 不兼容的更改。可以看到,gofmt命令还支持自定义的重写规则,使用-r参数,按照pattern -> replacement的格式传入规则。gofmt是一个独立的cli程序,而go中还有一个go fmt命令,go fmt命令是gofmt的简单封装。go fmt命令本身只有两个可选参数-n-x-n仅打印出内部要执行的go fmt的命令;-x命令既打印出go fmt命令又执行它;如果需要更细化的配置,需要直接执行gofmt命令。点击Setting-> Tools -> File Watchers,点加号添加一个go fmt模版,Goland中预置的go fmt模版使用的是go fmt命令,将其替换为gofmt,然后在参数中增加-l -w -s参数,启用代码简化功能。添加配置后,保存源码时,goland就会执行代码格式化了。“Go代码格式化gofmt如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注百云主机网站,小编将为大家输出更多高质量的实用文章!

相关推荐: Vue3组件库的环境怎么配置

本篇内容介绍了“Vue3组件库的环境怎么配置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!因为我们是使用 Vite+Ts 开发的是 Vue3 组件库,所以我们需…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/01 11:54
Next 07/01 11:54

相关推荐