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.mzph.cn/news/584717.shtml

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

相关文章

攻防技术-单包攻击防范:扫描、畸形、特殊(HCIP)

单包攻击类型介绍 一、扫描窥探攻击 1、地址扫描攻击防范 攻击介绍 运用ping程序探测目标地址&#xff0c;确定目标系统是否存活。也可使用TCP/UDP报文对目标系统发起探测&#xff08;如TCP ping&#xff09;。 防御方法 检测进入防火墙的ICMP、TCP和UDP报文&#xff0c;根…

集群部署篇--Redis 主从模式

文章目录 前言Redis 主从部署&#xff1a;1.1 主从架构 介绍&#xff1a;1.2 主从架构 实现&#xff1a;1.2.1 redis 安装&#xff1a; 1.3 主从架构优缺点&#xff1a;1.4 故障转移&#xff1a; 总结 前言 显然在线上环境中 Redis 服务不能以单机的方式运行&#xff0c;必须有…

k8s的陈述式资源管理

k8s的陈述式资源管理&#xff1a; 命令行&#xff1a;kubectl命令行工具 优点&#xff1a;90%以上的场景都可以满足 对资源的增&#xff0c;删&#xff0c;查比较方便&#xff0c;对改不是很友好 缺点&#xff1a; 命令比较冗长&#xff0c;复杂&#xff0c;难记 声明式&…

MYSQL二主二从集群部署

目录 一、环境描述 二、安装mysql 2.1 卸载mysql(如果没安装过&#xff0c;可忽略) 2.1.1 列出安装的mysql 2.1.2 卸载mysql 2.1.3 删除mysql文件目录 2.1.3.1 查看mysql 目录 2.1.3.2 依次删除 2.2 在线安装 2.2.1 下载安装源 2.2.2 安装源rpm 2.2.3 加入rpm密钥 …

封装uniapp签字板

新开发的业务涉及到签字功能&#xff0c;由于是动态的表单&#xff0c;无法确定它会出现在哪里&#xff0c;不得已封装模块。 其中涉及到一个难点就是this的指向性问题&#xff0c; 第二个是微信小程序写法&#xff0c; 我这个写法里用了u-view的写法&#xff0c;可以自己修改组…

证明:切线垂直于半径

证明&#xff1a; 切线垂直于过切点的半径。 下面是网上最简单的证明方法。 证明&#xff1a; 利用反证法。 如下图所示&#xff0c;直线AB和圆O切于点A&#xff0c;假设OA 不垂直于 AB&#xff0c;而 O B ⊥ A B OB \perp AB OB⊥AB&#xff0c;则 ∠ O B A 90 \angle OB…

------- 计算机网络基础

1.1概述 是什么? 答出独立计算机通信线路连接实现资源共享 计算机网络组成 从组成部分看: 硬件软件协议 从工作方式看: 边缘部分和核心部分 从功能组成看: 通信子网和资源子网 计算机网络性能指标 速率是指数据传输的物理速度&#xff0c;吞吐量是指实际的数据传输…

k8s的陈述式资源管理(命令行操作)

&#xff08;一&#xff09;k8s的陈述式资源管理 1、命令行&#xff1a;kubectl命令行工具——用于一般的资源管理 &#xff08;1&#xff09;优点&#xff1a;90%以上ce场景都可以满足 &#xff08;2&#xff09;特点&#xff1a;对资源的增、删、查比较方便&#xff0c;对…

如何使用idea部署springboot项目全过程

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…

Adobe 设计精髓:创新的用户体验 | 开源日报 No.130

adobe/react-spectrum Stars: 10.1k License: Apache-2.0 React Spectrum Libraries 是一系列的库和工具&#xff0c;旨在帮助开发者构建适应性强、可访问性好且稳健的用户体验。 核心优势&#xff1a; 提供全面的可访问性和行为支持&#xff0c;符合 WAI-ARIA 编写实践&…

vcpkg 安装开源包 以及 配置 已解决

Vcpkg 可帮助您在 Windows、 Linux 和 MacOS 上管理 C 和 C 库。 这个工具和生态链正在不断发展&#xff0c;我们一直期待您的贡献&#xff01; 若您从未使用过 vcpkg&#xff0c;或者您正在尝试了解如何使用 vcpkg&#xff0c;请查阅 入门 章节。 如需获取有关可用命令的简短…

大创项目推荐 深度学习乳腺癌分类

文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度&#xff0c;召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…

Animate 2024(Adobe an2024)

Animate 2024是一款由Adobe公司开发的动画和互动内容创作工具&#xff0c;是Flash的演进版本。Animate 2024为设计师和开发者提供了更丰富的功能&#xff0c;让他们能够创建各种类型的动画、交互式内容和多媒体应用程序。 Animate 2024具有以下特点&#xff1a; 强大的设计工…

k8s的资源管理

命令行: kubectl命令行工具优点: 90%以上的场景都可以满足 对资源的增&#xff0c;删&#xff0c;查比较方便&#xff0c;对改不是很友好缺点:命令比较冗长&#xff0c;复杂难记 声明方式&#xff1a;k8s当中的yaml文件实现资源管理----声明式GUI:图形化工具的管理。 查看k8s的…

PiflowX组件-WriteToKafka

WriteToKafka组件 组件说明 将数据写入kafka。 计算引擎 flink 有界性 Streaming Append Mode 组件分组 kafka 端口 Inport&#xff1a;默认端口 outport&#xff1a;默认端口 组件属性 名称展示名称默认值允许值是否必填描述例子kafka_hostKAFKA_HOST“”无是逗号…

使用Commons JXPath简化XML/JSON处理

第1章&#xff1a;引言 咱们都知道&#xff0c;在现代软件开发中&#xff0c;处理XML和JSON数据几乎是家常便饭。这两种格式广泛应用于配置文件、数据交换、API响应等领域。不过&#xff0c;要手动解析和操作它们&#xff0c;有时候真是让人头大。 当你面对一堆复杂的XML或JS…

JavaSE语法之十一:接口(超全!!!)

文章目录 1. 概念2. 语法规则3. 接口使用4. 接口特性5. 实现多个接口6. 接口间的继承7. 接口使用实例8. Clonable 接口和深拷贝9. 抽象类和接口的区别&#xff08;重要&#xff01;&#xff09; 1. 概念 在现实生活中的接口比比皆是&#xff0c;如&#xff1a;笔记本上的USB接…

Flink 输出至 Elasticsearch

【1】引入pom.xml依赖 <dependency><groupId>org.apache.flink</groupId><artifactId>flink-connector-elasticsearch6_2.12</artifactId><version>1.10.0</version> </dependency>【2】ES6 Scala代码&#xff0c;自动导入的…

私有部署ELK,搭建自己的日志中心(五)-- 使用filebeat采集K8S pod的jvm日志

一、背景 前文采集的日志是来源于虚拟机&#xff0c;在云原生下的容器化部署时&#xff0c;需要采集Pod里的jvm日志。 二、术语 1、临时存储emptyDir emptyDir在Pod被分配到Node时创建的&#xff0c;它的初始内容为空&#xff0c;并且无须指定宿主机上对应的目录文件&#…

分布式系统架构设计之分布式系统架构演进和版本管理

在分布式系统的生命周期中&#xff0c;架构演进和版本管理是很重要的两个环节。本部分会介绍分布式系统架构演进的原则、策略以及版本管理的最佳实践&#xff0c;以帮助研发团队更好地应对需求变化、技术发展和系统升级。 架构演进 演进原则 渐进式演进 采用渐进式演进的原…