Go语言的编译速度非常快。Go 1.9 版本后默认利用Go语言的并发特性进行函数粒度的并发编译。
Go语言的程序编写基本以源码方式,无论是自己的代码还是第三方代码,并且以 GOPATH 作为工作目录和一套完整的工程目录规则。因此Go语言中日常编译时无须像
C++ 一样配置各种包含路径、链接库地址等。
Go语言中使...
Go语言中
go clean命令可以移除当前源码包和关联源码包里面编译生成的文件,这些文件包括以下几种:
执行go build命令时在当前目录下生成的与包名或者 Go 源码文件同名的可执行文件。在 Windows 下,则是与包名或者 Go 源码文件同名且带有“.exe”后缀的文件。
执行go test命令并加入-c标记时在当前目录下生...
Python 或者 Lua 语言可以在不输出二进制的情况下,将代码使用虚拟机直接执行。Go语言虽然不使用虚拟机,但可使用
go run 指令达到同样的效果。
go run 命令会编译源码,并且直接执行源码的 main() 函数,不会在当前目录留下可执行文件。
下面我们准备一个 main.go 的文件来观察
go run 的运行结果,源码...
对于一门编程语言来说,代码格式化是最容易引起争议的一个问题,不同的开发者可能会有不同的编码风格和习惯,但是如果所有开发者都能使用同一种格式来编写代码,那么开发者就可以将主要精力放在语言要解决的问题上,从而节省开发时间。
gofmt 介绍
Go语言的开发团队制定了统一的官方代码风格,并且推出了 ...
go install 命令的功能和前面一节《
go build命令》中介绍的 go build 命令类似,附加参数绝大多数都可以与 go build 通用。go install 只是将编译的中间文件放在 GOPATH 的 pkg 目录下,以及固定地将编译结果放在 GOPATH 的 bin 目录下。
这个命令在内部实际上分成了两步操作:第一步是生成结果文件(可执...
go get 命令可以借助代码管理工具通过远程拉取或更新代码包及其依赖包,并自动完成编译和安装。整个过程就像安装一个 App 一样简单。
这个命令可以动态获取远程代码包,目前支持的有 BitBucket、GitHub、Google Code 和 Launchpad。在使用 go get 命令前,需要安装与远程包匹配的代码管理工具,如 Git、SVN...
go generate命令是在Go语言 1.4 版本里面新添加的一个命令,当运行该命令时,它将扫描与当前包相关的源代码文件,找出所有包含
//go:generate的特殊注释,提取并执行该特殊注释后面的命令。
使用
go generate命令时有以下几点需要注意:
该特殊注释必须在 .go 源码文件中;
每个源码文件可以包含多个 g...
Go语言拥有一套单元测试和性能测试系统,仅需要添加很少的代码就可以快速测试一段需求代码。
go test 命令,会自动读取源码目录下面名为 *_test.go 的文件,生成并运行测试用的可执行文件。输出的信息类似下面所示的样子:
ok archive/tar 0.011s FAIL archive/zip 0.022s ok compress/gzip 0.033s ...
...
Go语言工具链中的 go pprof 可以帮助开发者快速分析及定位各种性能问题,如 CPU 消耗、内存分配及阻塞分析。
性能分析首先需要使用 runtime.pprof 包嵌入到待分析程序的入口和结束处。runtime.pprof 包在运行时对程序进行每秒 100 次的采样,最少采样 1 秒。然后将生成的数据输出,让开发者写入文件或者其他...