go命令
- go/go help
- go version
- go env
- go bug
- go build
- go install
- go get
- go mod
- go run
- go clean
- go doc
- go fix
- go fmt
- go generate
- go work
- go test
- go tool
- go vet
go/go help
通过该命令,我们可以查看go语言中的所有命令,其中go与go help两个命令是等效的
如下:
其中,输入go help build将会给出每个命令的详细解释
go version
go version 用于查看当前go的版本
go env
go env命令用于打印Go语言的环境变量信息,包括Go语言的安装路径、工作目录、操作系统、CPU架构、Go模块代理、代理服务器等信息。这个命令通常用于调试和查看当前Go语言环境的配置信息
go bug
go bug命令用于报告Go语言标准库或工具链中的bug或问题。使用该命令可以方便地向Go语言的开发者和维护者提交bug报告
执行这个命令后,会自动打开一个浏览器窗口,跳转到Go语言项目的bug报告页面,用户可以在这里提交bug报告或者搜索已有的bug报告
go build
go build命令用于将Go语言源代码编译成可执行的程序或库文件。使用"go build"命令可以将Go语言代码编译成exe可执行文件,而无需显式地指定编译器或链接器选项
前提是该目录下有go.mod文件(用于管理和描述项目的模块依赖关系的文件,通常位于项目的根目录下)
如下:
没下面这个即为成功编译
也可以使用参数 -o(指定输出文件的名称)指定文件名进行编译
例如:
go build -o main.exe
或者指定文件名编译
go build main.go
go install
go install命令是Go语言中用于构建并安装指定包的命令。执行go install命令会编译指定包的源代码,并将生成的可执行文件或库文件安装到Go语言的工作区中的bin目录或pkg目录中
其中go install命令与go build命令的参数一致
注意:文件需要按照go语言开发规范,目录下应该有src、pkg、bin三个子目录
go get
go get命令用于动态获取远程代码包及其依赖包,并进行编译和安装
就比如我们要使用gin框架时,就会使用如下命令
go get -u github.com/gin-gonic/gin
其中,-u表示更新已经存在的包,或者安装最新的版本
go mod
go mod(go modules)命令用于对go包的管理
从go1.11开始实现
其中Go模块(Go Modules)提供了一组命令,用于管理和操作Go项目的依赖关系。以下是一些常用的go mod命令及其作用:
- go mod init <module-name>:初始化一个新的模块。这个命令会在当前目录下创建一个新的go.mod文件,用于记录项目的依赖关系。<module-name>是你的项目的模块名称
- go mod tidy:拉取缺少的模块,移除未使用的模块
- go mod download:下载项目的所有依赖包。这个命令会下载项目依赖的所有包到本地缓存中
- go mod vendor:将依赖包复制到项目的vendor目录中。这个命令会将所有的依赖包复制到项目的vendor目录下,以便项目可以在没有网络连接的情况下构建
- go mod verify:验证依赖包的完整性。这个命令会验证项目依赖包的完整性,确保它们没有被篡改
- go mod graph:打印模块依赖图。这个命令会打印出项目依赖的模块和它们之间的依赖关系
- go mod edit:编辑go.mod文件。这个命令可以用来手动编辑go.mod文件,例如添加或删除依赖项
- go mod why:解释为什么需要依赖包。这个命令可以帮助你理解为什么某个依赖包被引入到你的项目中
go run
go run命令用于运行源代码文件的命令。使用go run命令可以直接运行一个Go源代码文件,而不需要先将其编译成可执行文件。即包含编译步骤,所以go build参数都可用于go run
常用于main.go
go run main.go
go clean
go clean用于清理项目文件的命令。它可以用来清理编译生成的文件和缓存,以及其他与构建过程相关的临时文件
有以下常用的子命令:
- go clean:清理当前目录的对象文件和缓存文件。这个命令会删除当前目录下的所有与构建相关的临时文件和缓存。
- go clean -i:清理安装的包和可执行文件。这个命令会删除安装的包和可执行文件,但会保留下载的源码文件。
- go clean -r:递归清理依赖包。这个命令会递归地清理项目依赖的所有包的对象文件和缓存文件。
- go clean -cache:清理构建缓存。这个命令会清理Go构建过程中生成的缓存文件。
- go clean -modcache:清理模块缓存。这个命令会清理模块下载的缓存文件
go doc
go doc命令用于查看Go语言标准库中的包、类型、函数等的文档。你可以使用go doc命令来查看标准库或者你自己编写的代码中的文档。例如,go doc fmt.Printf会显示fmt包中Printf函数的文档
go fix
go fix命令用于升级旧版本的Go代码以适应新版本的语言规范。它会自动更新旧代码中不再支持的语法和接口,以便让代码能够在新版本的Go中编译和运行
go fmt
go fmt命令用于格式化Go源代码文件。它会根据Go语言的规范自动调整代码的格式,包括缩进、空格、换行等,以确保代码风格的一致性
go generate
go generate命令用于执行指定的代码生成命令。通过在Go源文件中添加//go:generate的注释,
即go generate是利用源代码中的注释工作的。你可以指定需要执行的代码生成命令,然后使用go generate命令来生成相应的代码
go work
官方文档地址:work
Go 1.18支持的工作区模式,可以本地同时开发多个互相依赖的Go Module
可以在工作区目录维护一个go.work文件来管理你的所有依赖。go.work里的use和replace指令会覆盖工作区目录下的每个Go Module的go.mod文件,因此没有必要去修改Go Module的go.mod文件,即不用在go.mod文件中再写require、replace了
使用go work init来创建一个workspace
例如:
D:\go\project>mkdir ginlearn //即建立工作目录ginlearn 一个工作目录即是一个完整的大项目功能模块
D:\go\project>cd ginlearn
D:\go\project\ginlearn>go work init //初始化
D:\go\project\ginlearn>mkdir helloworld
D:\go\project\ginlearn>cd helloworld
D:\go\project\ginlearn\helloworld>go mod init test.com/helloworld //初始化项目
go: creating new go.mod: module test.com/helloworld
D:\go\project\ginlearn\helloworld>cd ..
D:\go\project\ginlearn>go work use ./helloworld //将该项目加入工作目录中,即生成的go.work文件中
go test
go test命令用于运行Go语言中的测试文件,它会自动查找当前目录下以_test.go结尾的文件(即测试源码的文件名以 _test.go 结尾),并执行其中的测试函数。测试函数的命名必须以Test开头,函数签名为 func (t *testing.T),例如TestAdd()。
go test命令会输出测试结果,包括测试用例的总数、通过的测试用例数、失败的测试用例数等。如果所有测试用例都通过,则输出PASS,否则输出FAIL
go tool
go tool命令是一个工具集,包含了很多有用的工具,例如go tool pprof用于性能分析、go tool vet用于静态分析等
如下:
go vet
go vet命令是go tool vet命令的简化版,它可以直接使用go vet命令来检查代码中的常见错误和潜在问题。与go tool vet命令相比,go vet命令更加简单易用,可以直接在命令行中使用
该命令会检查代码中的常见错误和潜在问题,例如未使用的变量、不必要的类型转换、死代码等。使用go vet命令可以帮助开发者发现代码中的问题,提高代码质量
18个命令完结~ 感谢阅读!