Go语言学习笔记(十四)

一、Go语言命名约定

1 Go代码格式设置

   在代码格式设置方面,Go语言采取了实用而严格的态度。Go语言指定了格式设置约定,这种约定虽然并非是强制性的,但gofmt可以实现它。虽然编译器不要求按命令gofmt指定的那样设置代码格式,但几乎整个Go社区都使用gofmt,并希望按这个命令指定的方式设置代码格式

2 使用gofmt

  1. gofmt <文件名> 重新设置文件格式,修改后的文件在cmd窗口输出
  2. diff <文件名1> <文件名2> 对比两个文件之间的不同
  3. gofmt -w <文件名> 设置格式后的结果将直接覆盖当前文件

3 配置文本编辑器

因为Go语言不像C++那样需要独特的开发环境IDE,这意味着我们可以使用一个简单的文本编辑器+电脑就可以完成Go程序的开发,而一些文本编辑器自带的Go
语言插件可以帮助我们完成Go程序的编写,如下

文本编辑器插件名称
Vimvim-go
Emacsgo.mode.el
SublimeGoSublime
Atomgo-plus
Eclipsegoclipse
Visual Studiovscode-go

4 使用golint

  1. 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

  1. 随着要开发的程序越来越复杂,要确保其品质优良,编写文档至关重要。即使单独开发。注释也有助于帮助我们快速理解代码的作用。在文档编写方面,GO语言提供了良好的支持:在确保文档编写工作尽可能简单方面,Go语言的设计者做了深入的考虑
  2. godoc是一款官方工具,可通过分析Go语言源代码机器中的注释来生成文档。由于文档是根据源代码生成的,这很大程度上避免了文档不同步(软件项目中常见的问题)的问题。
  3. godoc是一款官方工具,但它必须单独安装。指令如下:

    go get golang.org/x/tools/cmd/godoc
    安装成功之后可以使用godoc--help命令来检查自己是否安装成功
    在这里插入图片描述

  4. godoc是帮助我们生成说明文档的,接下来以一个切实简单的小例子来说明相关内容
    1. 建立一个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:成功的道友有时间的话,麻烦评论区留言,我们探讨一下。
  1. 我话都说到这份上了,大家也知道我没有成功,安装好godoc之后,命令godoc不可用,我使用的是go doc命令,中间有空格,实现效果如下(我的go版本是go1.16.3 windows/amd64):
    在这里插入图片描述

  2. 我们要学习怎样编写文档,可以通过研究标准库编写文档的做法。安装godoc后,就可以将任何标准库的文档输出到终端中。例如:要查看strings包的文档,可执行:

    godoc strings

    我们也可以通过启动一个Web服务器来查看标准库文档,使用

    godoc -http=localhost:6060

    然后在浏览器打开http://localhost:6060/pkg即可查看标准库文档

参考书籍
 [1]: 【Go语言入门经典】[英] 乔治·奥尔波 著 张海燕 译
题外话
  1. 真的是醉了,写这篇笔记的时候一多半的时间在安装第三方包
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是兔不是秃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值