golang第六卷---go命令

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语言中的所有命令,其中gogo 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命令及其作用:

  1. go mod init <module-name>:初始化一个新的模块。这个命令会在当前目录下创建一个新的go.mod文件,用于记录项目的依赖关系。<module-name>是你的项目的模块名称
  2. go mod tidy:拉取缺少的模块,移除未使用的模块
  3. go mod download:下载项目的所有依赖包。这个命令会下载项目依赖的所有包到本地缓存中
  4. go mod vendor:将依赖包复制到项目的vendor目录中。这个命令会将所有的依赖包复制到项目的vendor目录下,以便项目可以在没有网络连接的情况下构建
  5. go mod verify:验证依赖包的完整性。这个命令会验证项目依赖包的完整性,确保它们没有被篡改
  6. go mod graph:打印模块依赖图。这个命令会打印出项目依赖的模块和它们之间的依赖关系
  7. go mod edit:编辑go.mod文件。这个命令可以用来手动编辑go.mod文件,例如添加或删除依赖项
  8. go mod why:解释为什么需要依赖包。这个命令可以帮助你理解为什么某个依赖包被引入到你的项目中

go run

go run命令用于运行源代码文件的命令。使用go run命令可以直接运行一个Go源代码文件,而不需要先将其编译成可执行文件。即包含编译步骤,所以go build参数都可用于go run
常用于main.go

go run main.go

go clean

go clean用于清理项目文件的命令。它可以用来清理编译生成的文件和缓存,以及其他与构建过程相关的临时文件

有以下常用的子命令:

  1. go clean:清理当前目录的对象文件和缓存文件。这个命令会删除当前目录下的所有与构建相关的临时文件和缓存。
  2. go clean -i:清理安装的包和可执行文件。这个命令会删除安装的包和可执行文件,但会保留下载的源码文件。
  3. go clean -r:递归清理依赖包。这个命令会递归地清理项目依赖的所有包的对象文件和缓存文件。
  4. go clean -cache:清理构建缓存。这个命令会清理Go构建过程中生成的缓存文件。
  5. 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个命令完结~ 感谢阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/308756.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实时数仓应用价值(上)

欢迎关注WX公众号&#xff1a;数据运营入表资产化服务 获取更多算法源码材料 2023数据资源入表白皮书&#xff0c;推荐系统源码下载-CSDN博客 浅析研发支出费用化和资本化的区别-CSDN博客 商业银行数据资产估值白皮书&#xff0c;推荐系统源码下载-CSDN博客 用友BIP数据资…

计算机网络【EPoll原理】

预备知识&#xff1a;内核poll钩子原理 内核函数poll_wait 把当前进程加入到驱动里自定义的等待队列上 &#xff1b; 当驱动事件就绪后&#xff0c;就可以在驱动里自定义的等待队列上唤醒调用poll的进程&#xff1b; 故poll_wait作用&#xff1a;可以让驱动知道事件就绪的时…

笔记1:基于锚框(先验框)的目标检测

一、边缘框&#xff08;bounding box&#xff09; 1.1 定义 边缘框&#xff1a;真实标注的物体位置 2.1 表示方式 1、&#xff08;x1,y1)和(x2,y2) 2、&#xff08;x1,y1)和w,h 二、锚框(anchor box)/先验框&#xff08;prior bounding box&#xff09; 2.1 定义 对边缘…

DDC和PLC的区别

前言 PLC与DDC控制器的比较&#xff0c;一直以来在相关领域内受到广泛关注。每个人站在不同的角度分析&#xff0c;都会有不同的结论&#xff0c;我们今天聊聊这个话题。 基本定义和功能 可编程控制器PLC与直接数字控制器DDC&#xff0c;两者都由CPU模块、I/O模块、显示模块…

Python 内置高阶函数练习(Leetcode500.键盘行)

Python 内置高阶函数练习&#xff08;Leetcode500.键盘行&#xff09; 【一】试题 &#xff08;1&#xff09;地址&#xff1a; 500. 键盘行 - 力扣&#xff08;LeetCode&#xff09; &#xff08;2&#xff09;题目 给你一个字符串数组 words &#xff0c;只返回可以使用在…

可移动磁盘上的文件删除了怎么恢复?详细教程介绍

在我们的日常生活和工作中&#xff0c;可移动磁盘作为一种便携式的存储设备&#xff0c;经常被用来备份和传输数据。然而&#xff0c;有时候由于误操作或不小心的删除&#xff0c;导致可移动磁盘上的文件丢失。这些文件可能包含重要的工作资料、个人照片、视频等&#xff0c;一…

小天使的生命之源:新生儿补充铁剂的细致关怀与注意事项

引言&#xff1a; 新生儿是生命的奇迹&#xff0c;而良好的营养对于他们的健康成长尤为关键。铁是新生儿生命早期阶段发育所必需的重要元素之一&#xff0c;然而&#xff0c;在补充铁剂时&#xff0c;家长需要特别注意一系列细节。本文将深入探讨铁的作用、补充时机&#xff0…

在线尺码计算

在线衣服尺码计算 尺码不确定的话&#xff0c;可以填写身高、体重生成可以参考的尺码还是不错的 工具简介 选购时请综合参考尺码表中的各项参数&#xff0c;这有助您选择到更好的尺码。 该尺码计算工具仅供参考&#xff0c;测量脚时请注意用适当力度轻踩水平面上。因测量方法不…

【每日一题】一周中的第几天

文章目录 Tag题目来源解题思路方法一&#xff1a;模拟 写在最后 Tag 【模拟】【数学】【2023-12-30】 题目来源 1185. 一周中的第几天 解题思路 方法一&#xff1a;模拟 思路 题目中的日期是在 1971 到 2100 年之间的有效日期&#xff0c;即 1971-01-01 到 2100-12-31 范围…

软件测试/测试开发丨Windows系统chromedriver安装与环境变量配置

一、selenium 环境配置 1、chrome 浏览器的安装与配置 目前比较常用的浏览器是 Google Chrome 浏览器&#xff0c;所以本教程以 chrome 为主&#xff0c;后面简介一下其他浏览器的环境配置。 &#xff08;1&#xff09;chrome 下载: www.google.cn/chrome/ &#xff08;2&a…

【Linux系统编程二十五】:线程概念(Linux中的轻量级进程)

【Linux系统编程二十五】&#xff1a;线程概念(Linux中的轻量级进程&#xff09; 一.线程的概念1.地址空间是资源窗口 二.线程初步理解1.进程执行分支(内部运行)2.执行粒度更细3.重构进程概念&#xff1a;系统资源分配的基本实体4.重构线程概念&#xff1a;系统调度的基本单位5…

Gin 源码深度解析及实现

介绍 什么是 gin &#xff1f; 一个轻量级高性能 HTTP Web 框架。 Introduction | Gin Web Framework (gin-gonic.com) Gin 是一个用 Go (Golang) 编写的 HTTP Web 框架。 它具有类似 Martini 的 API&#xff0c;但性能比 Martini 快 40 倍。 为什么使用 gin &#xff1f; In…