介绍
go中自带了编写文档相关的命令,文档有助于读懂代码,标记一些代码方便回忆,提高效率
包
包的概念是指一组文件,每个go文件第一行都需要声明自己所在的包,包命名通常是当前所在目录,同时包也可以同名,因为会区分目录,只不过这样导入的时候要改名
main包是每个程序必须的,main包所在目录即会变成这个程序的程序名
导入
导包时会首先查找go安装目录,之后找gopath,import只要找到一个就会停止查找
可以远程导入,import “github.com/spf13/viper”,会从网络中导入一个包
可以重命名导入,这样就给同名包可以同时导入了
import (
"fmt"
myfmt "mylib/fmt"
)
go中导入未被使用的包会报错,这样避免了程序臃肿
如果不需要使用某个包的标识符,可以用下划线开头
init
init函数会首先执行,优先于main函数
命令行方式查看
如果在终端开发,可以使用go doc命令,这样不需要切换窗口
go doc [-u] [-c] [package|[package.]symbol[.method]]
使用这个命令,可以分层查看文档注释,最细可以到方法,注释的格式是/abc/ 和 //abc
如果要查看a包下的b结构体里的c方法的注释,命令为
a go doc b.c
可视化界面浏览
首先启动文档服务
➜ lib godoc -http=:6060
这样就可以在localhost下的6060端口查看文档,就类似于常见的资源管理器操作,其内容就是根据环境变量路径下所有包生成的文档
自行生成文档
文档格式类似c,java,就是双斜线和/**/两种,在标识符上方写文档,之后它就会绑定到文档
示例文档
对于一些工具类方法,可能会需要写一些输入输出示例,或者传参格式,可以把代码写一个名为example_test.go的文件中,其中目标函数无参,输出写在//output下一行
package lib
import "fmt"
func Example() {
sum:=Add(1,2)
fmt.Println("1+2=",sum)
//Output:
//1+2=3
}
依赖管理
类似于godep,vender。popkg.in工具可以管理依赖,一般是把第三方依赖复制到本地,作为一个整体进行管理,缺点在于会生成很长的导入路径,也有gb这种会分开程序代码和第三方代码,没有这个问题,但是这样go工具链就无法构建,测试,获取代码了