Go知识随记
2022-04-05 本文已影响0人
_张鹏鹏_
教程:
Go编程时光 — Go编程时光 1.0.0 documentation (iswbm.com)
常用命令:
go build:
完成源码的编译与可执行文件的生成。
如果参数为go文件或文件列表,则编译为一个个单独的包。
当编译单个main包(文件),则生成可执行文件。
当编译单个或多个包非主包时,只构建编译包,但丢弃生成的对象(.a),仅用作检查包可以构建。
当编译包时,会自动忽略'_test.go'的测试文件。
有用的命令选项:
选项 | ||
---|---|---|
-n | 打印编译时会用到的所有命令,但不真正执行 | |
-x | 打印编译时会用到的所有命令 | |
-o | output 指定编译输出的名称,代替默认的包名。 |
go run:
简单理解,go run 可等价于 go build + 执行。
go run不会将临时生成的可执行文件拷贝到当前目录。
go install:
go install 只是将编译的中间文件放在 GOPATH 的 pkg 目录下,以及固定地将编译结果放在 GOPATH 的 bin 目录下。
这个命令在内部实际上分成了两步操作:
- 第一步是生成结果文件(可执行文件或者 .a 包)。
- 第二步会把编译好的结果移到
$GOPATH/pkg
或者$GOPATH/bin
。
go get:
go get 命令可以借助代码管理工具通过远程拉取或更新代码包及其依赖包,并自动完成编译和安装。
这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行 go install。
参考文献:
Modules:
有了go modules
后,可以不再依靠 $GOPATH
,使得它可以脱离 $GOPATH
来创建项目。
进入项目目录,执行命令进行 go modules
的初始化:
go mod init 模块名字
初始化后,会生成 go.mod
文件。
项目中import
到的第三方库,需要使用go get
来下载,在开启了go modules
情况下,go get
的文件会下载到$GOPATH/pkg/mod
下。
-
go mod tidy
:添加缺少的包,且删除无用的包。