如何利用Go提供的一些工具和参数,帮助写出更好的代码?
一. golint 检查代码规范 例如 golint player.go 或 golint game/
golint <directory|files>
golint 会检测的方面:
ps:连 a+=1 都要改为a++,a+=2反而没问题,有点接受不了!!!
二. go vet 检查代码存在的隐患 例如 go tool vet . 或 go tool vet game/
go tool vet <directory|files>
错误示例: https://studygolang.com/articles/9619
三. --race 检查是否有race condition(并发竞争) 例如:go run --race trace.go 或 go build --race trace.go
golang在1.1之后引入了竞争检测的概念。我们可以使用go run -race 或者 go build -race 来进行竞争检测。
golang语言内部大概的实现就是同时开启多个goroutine执行同一个命令,并且纪录每个变量的状态。
但是这个参数会引发CPU和内存的使用增加,很耗性能,所以基本是在测试环境使用,不是在正式环境开启。
最后补一下编码规范,可以在goland编辑器使用插件go fmt,统一规范项目组的代码编写:
ok,that‘s all, thanks!
原文:https://www.cnblogs.com/huangliang-hb/p/11763809.html