一、Go语言命名约定
1 Go代码格式设置
在代码格式设置方面,Go语言采取了实用而严格的态度。Go语言指定了格式设置约定,这种约定虽然并非是强制性的,但gofmt可以实现它。虽然编译器不要求按命令gofmt指定的那样设置代码格式,但几乎整个Go社区都使用gofmt,并希望按这个命令指定的方式设置代码格式
2 使用gofmt
- gofmt <文件名> 重新设置文件格式,修改后的文件在cmd窗口输出
- diff <文件名1> <文件名2> 对比两个文件之间的不同
- gofmt -w <文件名> 设置格式后的结果将直接覆盖当前文件
3 配置文本编辑器
因为Go语言不像C++那样需要独特的开发环境IDE,这意味着我们可以使用一个简单的文本编辑器+电脑就可以完成Go程序的开发,而一些文本编辑器自带的Go
语言插件可以帮助我们完成Go程序的编写,如下
文本编辑器 | 插件名称 |
---|---|
Vim | vim-go |
Emacs | go.mode.el |
Sublime | GoSublime |
Atom | go-plus |
Eclipse | goclipse |
Visual Studio | vscode-go |
4 使用golint
- golint是Go语言提供的一个官方工具。gofmt根据指定的约定设置代码的格式,而命令golint根据Go项目本身的约定查找风格方面的错误。默认不会安装golint,但可像下面这样安装它。
go get -u github.com/golang/lint/golint
毫无意外,此时我也会遇见了安装上的问题:如果是这个问题:code in directory C:\Users\lenovo\go\src\github.com\golang\lint\golint expects import "golang.org/x/lint/golint"
可以看这里
在安装成功golint
之后我们使用一个简单地例子来演示golint
的使用方法
//example.go
package main
import "fmt"
const Foo string = "constant string"
func main(){
fmt.Println(Foo)
a_string := "hello"
fmt.Println(a_string)
}
这部分代码能够通过变异,也能通过gofmt的检查。能够通过编译说明这些代码正确无误,能够通过gofmt的检查说明格式也没有问题。不过,显而易见的是这些代码存在一些风格方面的问题。例如有个变量名包含下划线。golint的作用就是找出有关代码风格的问题,实操如下:
我们执行如下命令(在example.go所在文件夹下执行)
golint example.go
结果如下:
虽然这些命名规则并不是强制性的,好的代码风格对于自己的成长经历都是很有帮助的,既然Go有golint这样的工具为什么不好好利用它呢?
对了,这里有些golint校验常见的问题
5 使用godoc
- 随着要开发的程序越来越复杂,要确保其品质优良,编写文档至关重要。即使单独开发。注释也有助于帮助我们快速理解代码的作用。在文档编写方面,GO语言提供了良好的支持:在确保文档编写工作尽可能简单方面,Go语言的设计者做了深入的考虑
godoc
是一款官方工具,可通过分析Go语言源代码机器中的注释来生成文档。由于文档是根据源代码生成的,这很大程度上避免了文档不同步(软件项目中常见的问题)的问题。- godoc是一款官方工具,但它必须单独安装。指令如下:
go get golang.org/x/tools/cmd/godoc
安装成功之后可以使用godoc--help
命令来检查自己是否安装成功
godoc
是帮助我们生成说明文档的,接下来以一个切实简单的小例子来说明相关内容- 建立一个emample03.go文件文件内容如下:
// Package example03 shows how to use the godoc tool. package example03 import ( "errors" ) // Animal specifies an animal type Animal struct { Name string // Name holds the name of an Animal. // Age holds the name of an Animal. Age int } // ErrNotAnAnimal is returned if the name field of the Animal struct is Human. var ErrNotAnAnimal = errors.New("Name is not an animal") // Hello sends a greeting to the animal. func (a Animal) Hello() (string, error) { if a.Name == "Human" { return "", ErrNotAnAnimal } s := "Hello " + a.Name return s, nil } ``
- 在文件所在的目录下执行
godoc example03.go
,会在终端显示帮助文档,如下:
PS:成功的道友有时间的话,麻烦评论区留言,我们探讨一下。
-
我话都说到这份上了,大家也知道我没有成功,安装好
godoc
之后,命令godoc
不可用,我使用的是go doc
命令,中间有空格,实现效果如下(我的go版本是go1.16.3 windows/amd64
):
-
我们要学习怎样编写文档,可以通过研究标准库编写文档的做法。安装godoc后,就可以将任何标准库的文档输出到终端中。例如:要查看strings包的文档,可执行:
godoc strings
我们也可以通过启动一个Web服务器来查看标准库文档,使用
godoc -http=localhost:6060
然后在浏览器打开
http://localhost:6060/pkg
即可查看标准库文档
参考书籍
[1]: 【Go语言入门经典】[英] 乔治·奥尔波 著 张海燕 译
题外话
- 真的是醉了,写这篇笔记的时候一多半的时间在安装第三方包