1 Go代码格式设置
Go语言学习笔记(十四)
在代码格式设置方面,Go语言采取了实用而严格的态度。Go语言指定了格式设置约定,这种约定虽然并非是强制性的,但gofmt可以实现它。虽然编译器不要求按命令gofmt指定的那样设置代码格式,但几乎整个Go社区都使用gofmt,并希望按这个命令指定的方式设置代码格式
2 使用gofmt gofmt 重新设置文件格式,修改后的文件在cmd窗口输出diff 对比两个文件之间的不同gofmt -w 设置格式后的结果将直接覆盖当前文件 3 配置文本编辑器
因为Go语言不像C++那样需要独特的开发环境IDE,这意味着我们可以使用一个简单的文本编辑器+电脑就可以完成Go程序的开发,而一些文本编辑器自带的Go
语言插件可以帮助我们完成Go程序的编写,如下
文本编辑器插件名称
Vim
vim-go
Emacs
go.mode.el
Atom
go-plus
-go
4 使用 是Go语言提供的一个官方工具。gofmt根据指定的约定设置代码的格式,而命令根据Go项目本身的约定查找风格方面的错误。默认不会安装,但可像下面这样安装它。
go get -u //lint/
毫无意外,此时我也会遇见了安装上的问题:如果是这个问题:code in C:\Users\\go\src\\\lint\ "/x/lint/"可以看这里
在安装成功之后我们使用一个简单地例子来演示的使用方法
//example.go
package mainimport "fmt"const Foo string = "constant string"func main(){fmt.Println(Foo)a_string := "hello"fmt.Println(a_string)
}
这部分代码能够通过变异,也能通过gofmt的检查。能够通过编译说明这些代码正确无误,能够通过gofmt的检查说明格式也没有问题。不过,显而易见的是这些代码存在一些风格方面的问题。例如有个变量名包含下划线。的作用就是找出有关代码风格的问题,实操如下:
我们执行如下命令(在.go所在文件夹下执行)
.go
结果如下:
虽然这些命名规则并不是强制性的,好的代码风格对于自己的成长经历都是很有帮助的,既然Go有这样的工具为什么不好好利用它呢?
对了,这里有些校验常见的问题
5 使用godoc 随着要开发的程序越来越复杂,要确保其品质优良,编写文档至关重要。即使单独开发。注释也有助于帮助我们快速理解代码的作用。在文档编写方面,GO语言提供了良好的支持:在确保文档编写工作尽可能简单方面,Go语言的设计者做了深入的考虑godoc是一款官方工具,可通过分析Go语言源代码机器中的注释来生成文档。由于文档是根据源代码生成的,这很大程度上避免了文档不同步(软件项目中常见的问题)的问题。godoc是一款官方工具,但它必须单独安装。指令如下:
go get /x/tools/cmd/godoc
安装成功之后可以使用godoc--help命令来检查自己是否安装成功
godoc是帮助我们生成说明文档的,接下来以一个切实简单的小例子来说明相关内容 建立一个.go文件文件内容如下:
// Package example03 shows how to use the godoc tool.package example03import ("errors")// Animal specifies an animaltype 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.Namereturn s, nil}``
我话都说到这份上了,大家也知道我没有成功,安装好godoc之后,命令godoc不可用,我使用的是go doc命令,中间有空格,实现效果如下(我的go版本是go1.16.3 /amd64):
我们要学习怎样编写文档,可以通过研究标准库编写文档的做法。安装godoc后,就可以将任何标准库的文档输出到终端中。例如:要查看包的文档,可执行:
godoc
我们也可以通过启动一个Web服务器来查看标准库文档,使用