Golang入门基础教程(五)代码格式化
开头小故事
角色介绍
A:go开发工程师,代码整洁,格式清晰明了,严格按照语言格式进行code
B:go开发工程师,刚入门不久,之前做其他语言开发,go开发的语法在开发的过程中还带有其他语言的习惯,格式并没有严格按照go语言格式
场景
某公司使用go语言进行项目开发,需要A和B两人同时负责某一个项目进行协作
剧情
A早上上班,习惯性的拉取最新代码继续开发,哒哒哒的敲完一天的代码后,在下班前进行代码的提交,提交到git服务器,在确定自己一天所有的修改之后,发现某些文件并不是自己修改的,而是在执行fmt(ide自动fmt等)时自动修改的文件,顿时感觉自己的洁癖来的好猛烈。
A:你这代码在提交的时候没有格式化吗?
B:格式化?为什么还要格式化?
A:go可是一门特别整洁的开发语言,有着严格的语法规范的,gofmt你不知道吗?
B:不知道诶,讲一讲呗
这样就开始了gofmt的讲解
gofmt
go基础工具包中的一个工具,为了统一不同程序员的不同编写规范而出,能够将go代码进行统一的规范输出。
首先看一看gofmt的帮助文档
gofmt --help
usage: gofmt [flags] [path ...]
-cpuprofile string
write cpu profile to this file
-d display diffs instead of rewriting files
-e report all errors (not just the first 10 on different lines)
-l list files whose formatting differs from gofmt's
-r string
rewrite rule (e.g., 'a[b:len(a)] -> a[b:]')
-s simplify code
-w write result to (source) file instead of stdout
在工作中使用最多的也就是 gofmt -w main.go
格式化该源文件的代码然后将格式化后的代码覆盖原始内容
还有 -r
参数进行规则的编写从而进行替换的语法等,当然这些在开发的过程中使用的并不多(在开发的时候自己就已经按照规范来编写,就不会产生那么多不规范的代码了)
IDEA插件
开发过程中也可以通过ide的插件来辅助我们开发进行格式化
File Watchers
file watcher 是idea上的插件,能够在文件变动时执行相应的任务
添加file watchers 插件
添加 gofmt 任务
如果想自动保存文件的时候进行fmt也可以在fmt里面进行相应的修改
后记
gofmt无疑是让代码更具可读性和规范性的最好的官方工具,但是作为辅助工具,还是希望用的越少越好。
用的越少当然说明自己的代码规范越好 :)
关于 gofmt 更多的说明可以参照官方文档