go build file1.go
go build file1.go file2.go
-v
编译时显示包名-p n
开启并发编译,默认情况下该值为 CPU 逻辑核数-a
强制重新构建-n
打印编译时会用到的所有命令,但不真正执行-x
打印编译时会用到的所有命令-race
开启竞态检测-o
指定文件名 go build -o myexec main.go
go clean
命令可以移除当前源码包和关联源码包里面编译生成的文件
-i
清除关联的安装的包和可运行文件,也就是通过go install安装的文件;-n
把需要执行的清除命令打印出来,但是不执行;-r
循环的清除在 import 中引入的包;-x
打印出来执行的详细命令,其实就是 -n 打印的执行版本;-cache
删除所有go build
命令的缓存-testcache
删除当前包所有的测试结果go run
命令会编译源码,并且直接执行源码的 main()
函数,不会在当前目录留下可执行文件。go run
不会在运行目录下生成任何文件,可执行文件被放在临时文件中被执行,工作目录被设置为当前目录。在go run
的后部可以添加参数,这部分参数会作为代码可以接受的命令行输入提供给程序。gofmt
是一个 cli
程序,会优先读取标准输入,如果传入了文件路径的话,会格式化这个文件,如果传入一个目录,会格式化目录中所有 .go
文件,如果不传参数,会格式化当前目录下的所有 .go
文件。-l
仅把那些不符合格式化规范的、需要被命令程序改写的源码文件的绝对路径打印到标准输出。而不是把改写后的全部内容都打印到标准输出。-w
把改写后的内容直接写入到文件中,而不是作为结果打印到标准输出。-r
添加形如“a[b:len(a)] -> a[b:]”的重写规则。如果我们需要自定义某些额外的格式化规则,就需要用到它。-s
简化文件中的代码。-d
只把改写前后内容的对比信息作为结果打印到标准输出。而不是把改写后的全部内容都打印到标准输出。命令程序将使用 diff 命令对内容进行比对。在 Windows 操作系统下可能没有 diff 命令,需要另行安装。-e
打印所有的语法错误到标准输出。如果不使用此标记,则只会打印每行的第 1 个错误且只打印前 10 个错误。-comments
是否保留源码文件中的注释。在默认情况下,此标记会被隐式的使用,并且值为 true。-tabwidth
此标记用于设置代码中缩进所使用的空格数量,默认值为 8。要使此标记生效,需要使用“-tabs”标记并把值设置为 false。-tabs
是否使用 tab('\t')
来代替空格表示缩进。在默认情况下,此标记会被隐式的使用,并且值为 true。-cpuprofile
是否开启 CPU 使用情况记录,并将记录内容保存在此标记值所指的文件中。go build
命令类似,附加参数绝大多数都可以与 go build
通用。go install
只是将编译的中间文件放在 GOPATH
的 pkg
目录下,以及固定地将编译结果放在 GOPATH
的 bin
目录下。go get
命令可以借助代码管理工具通过远程拉取或更新代码包及其依赖包,并自动完成编译和安装。整个过程就像安装一个 App 一样简单。
go get github.com/davyxu/cellnet
BitBucket、GitHub、Google Code
和 Launchpad
。在使用 go get
命令前,需要安装与远程包匹配的代码管理工具,如 Git、SVN、HG
等,参数中需要提供一个包名。-d
只下载不安装-u
强制使用网络去更新包和它的依赖包-f
只有在你包含了 -u
参数的时候才有效,不让 -u
去验证 import
中的每一个都已经获取了,这对于本地 fork 的包特别有用-fix
在获取源码之后先运行 fix,然后再去做其他的事情-t
同时也下载需要为运行测试所需要的包-v
显示执行的命令go get
命令因为网络原因可能导致某些包无法下载gopm
来获取无法下载的包(安装需使用命令行工具)github地址:go get -u github.com/gpmgo/gopm
# 查看当前工程依赖
gopm list
# 显示依赖详细信息
gopm list -v
# 列出文件依赖
gopm list -t [file]
# 拉取依赖到缓存目录
gopm get -r xxx
# 仅下载当前指定的包
gopm get -d xxx
# 拉取依赖到$GOPATH
gopm get -g xxx
# 检查更新所有包
gopm get -u xxx
# 拉取到当前所在目录
gopm get -l xxx
# 运行当前目录程序
gopm run
# 生成当前工程的 gopmfile 文件用于包管理
gopm gen -v
# 根据当前项目 gopmfile 链接依赖并执行 go install
gopm install -v
# 更新当前依赖
gopm update -v
# 清理临时文件
gopm clean
# 编译到当前目录
gopm bin
go generate
命令是在Go语言 1.4 版本里面新添加的一个命令,当运行该命令时,它将扫描与当前包相关的源代码文件,找出所有包含 //go:generate的特殊注释,提取并执行该特殊注释后面的命令。
.go
源码文件中;generate
特殊注释;go generate
命令时,才会执行特殊注释后面的命令;go generate
命令执行出错时,将终止程序的运行;//go:generate开头,双斜线后面没有空格。
go generate [-run regexp] [-n] [-v] [-x] [command] [build flags] [file.go... | packages]
-run
正则表达式匹配命令行,仅执行匹配的命令;-v
输出被处理的包名和源文件名;-n
显示不执行命令;-x
显示并执行命令;command
可以是在环境变量 PATH
中的任何命令。go test
命令,会自动读取源码目录下面名为 *_test.go
的文件,生成并运行测试用的可执行文件。
Go语言工具链中的 go pprof
可以帮助开发者快速分析及定位各种性能问题,如 CPU 消耗、内存分配及阻塞分析。
go pprof
工具链配合 Graphviz 图形化工具可以将runtime.pprof
包生成的数据转换为 PDF
格式,以图片的方式展示程序的性能分析结果。