go语言基础
package main
import (
"fmt"
)
func main() {
fmt.Println("hello world")
}
go 环境变量的含义
GOROOT
是 go 的安装目录,go 原生的工具都在改目录下GOPATH
通常存放自己开发的代码或第三方依赖库GO111MODULE=ON
go会忽略 GOPATH 和 verdor 文件夹,只根据 go.mod 下载依赖。从 go1.16 开始其默认为 onGOPROXY
:下载依赖库时走哪个镜像代理,可以公司内部自建镜像PATH
下的二进制文件可以在任意目录下直接运行- 在
$GOPATH
目录下将三个子目录:src
、bin
、pkg
Go Modules 依赖包查找机制
- 下载的第三方依赖存储在 $GOPATH/pkg/mod 下
- go install 生成的可执行文件存储在 $GOPATH/bin 下
- 依赖包的查找顺序:
- 工作目录
- $GOPATH/pkg/mod
- $GOROOT/src
常见的 go 命令
go help
: 查看帮助文档
go build
:对源代码和依赖文件进行打包,生成可执行文件
go install
:编译并安装包或依赖,安装到 $GOPATH/bin下
go get
:把依赖库添加到当前module中,如果本机之前从未下载过则先下载并安装(install)
- go get github.com/tinylib/msgp 会在
$GOPATH/pkg/mod
目录下生成 github.com/tinylib/msgp 目录,同时在$GOPATH/bin
下生成 msgp 可执行文件
go mod
:module 相关的命令
go mod init module_name
go mod tidy
通过扫描当前项目中的所有代码来添加未被记录的依赖至 go.mod 文件或从 go.mod 文件中删除不再被使用的依赖
go run
:编译并运行程序go test
:执行测试代码go tool
:执行go自带的工具
go tool pprof
对 cpu、内存和协程进行监控go tool trace
跟踪协程的执行过程
go vet
:检查代码中的静态错误go fmt
:对代码文件进行格式化go doc
:查看go标准库或者第三方库的标准文档