Go语言之路————go环境的初始化

Go语言之路————go环境的初始化

  • 前言
  • 一、Go的安装
  • 二、环境配置
  • 三、初始化一个新项目
  • 四、常用的一些指令

前言

  • 我是一名多年Java开发人员,因为工作需要现在要学习go语言,Go语言之路是一个系列,记录着我从0开始接触Go,到后面能正常完成工作上的业务开发的过程,如果你也是个小白或者转Go语言的,希望我这篇文章对你有所帮助。
  • 有关go其他基础的内容的文章大家可以查看我的主页,接下来主要就是把这个系列更完,更完之后我会在每篇文章中挂上连接,方便大家跳转和复习。

一、Go的安装

官网:https://go.dev/dl/。如果网不好的记得上梯子
关于go的版本,go最大的一个版本改动,就是Go的1.18版本,我愿把它和java8相比,1.18版本引入了泛型(后面会讲),但是大多数生产企业会选择1.19版本,因为它相比上个版本更加的完善。

我在官网四处找了一下,没有发现有明确指出的LTS版本,在本文书写的时候,最新版本是1.23.4版本,因为我是写文章和测试用,我们就选择这个最新的版本,Windows环境下记得下载我下图红框选的,不要下载到32位版本的了。
.在这里插入图片描述

二、环境配置

  • GOROOT
    作用:GOROOT 指向 Go 语言的安装目录,这个目录包含了 Go 的标准库、编译器、解释器等核心组件。当你执行 go 相关命令时,系统会依据 GOROOT 找到这些基础的运行和编译资源。
  • GOPATH
    作用:GOPATH 是 Go 的工作空间目录,它是一个存放你自己编写的 Go 代码、下载的第三方依赖包的地方。
  • Go Mod
    作用:1.13版本后,官方推荐的新一代包管理工具

GOROOT是我们必须配置的,但是现在官方推荐使用go mod,所以GOPATH的作用就被弱化了,但是这里还是建议配置上,因为有些老项目还会用这个,如果go mod找不到,就会从GOPATH 的目录去寻找。

步骤:直接上图吧
在这里插入图片描述

在这里插入图片描述

第一个是goroot,第二个是protobuf的环境变量,不用这个的可以不管,第三个就是go path的目录。
控制台测试一下配置是否成功,出现go的版本则配置正确。
在这里插入图片描述

三、初始化一个新项目

  1. 我这里用的编辑器是GoLand 2022.3
    ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/30f8123a5a7f464d9c13a339c0fbedb0.png

  2. 对新项目进线一下配置,打开enable go mod,并且配置代理:GOPROXY=https://mirrors.aliyun.com/goproxy/,国内这环境懂得都懂。
    在这里插入图片描述
    控制台开启go mod,输入以下神秘代码:

    go env -w GO111MODULE=on
    
  3. 新建main文件

    package mainimport "fmt"func main() {fmt.Println("hello world")
    }
  4. 运行
    在这里插入图片描述

  5. 如果我们从github上拉取了一个新项目,没有go mod

四、常用的一些指令

1.如果我们从github上拉取了一个新项目,没有go.mod文件,terminal中切换到项目目录,执行一下代码

go mod init module-name

其中module-name替换为具体的项目名就好了
2.刷新和整理包的命令

go mod tidy

这个命令会自动扫描项目代码,分析代码里导入的所有包,把这些依赖包的相关信息,像是版本号、哈希值等,正确添加到 go.mod 与 go.sum 文件当中 ,go.sum 主要用于校验依赖包的完整性,防止包被篡改。
3.我们要引入一个外部包

go get url

其中的url基本都是github的地址,比如我们项目中要引入redis的包依赖

go get github.com/go-redis/redis/v8

如果我们要加入具体版本号,就在最后面用@符号,然后加入版本号就行

go get github.com/go-redis/redis/v8@v1.1.0

到这,我们的环境就搭建好了,下一篇,跟我一起走进go的基础语法吧。

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

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

相关文章

鼠标过滤驱动

文章目录 概述代码参考资料 概述 其编写过程大体与键盘过滤驱动相似,只需要切换一下附加的目标设备以及创建的设备类型等。但在该操作后依然无法捕获到Vmware创建的win7操作系统的鼠标irp信息,于是通过在获取鼠标驱动,遍历其所有的设备进而附…

鸿蒙UI开发——基于onTouch事件实现表情选择胶囊

1、背 景 有朋友留言说,抖音APP中,长按评论按钮触发的快捷表情选择胶囊动画比较好(效果如下图),希望使用鸿蒙ArkTs也实现一个类似的。 本文在鸿蒙ArkTs下也实现一个类似的效果,如下: 首先&…

Node.js——http 模块(二)

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

研华 PCI-1751 驱动更新导LabVIEW致程序异常

问题描述: 某 LabVIEW 程序长期运行正常,但在使用研华 PCI-1751 数据采集卡运行一段时间后,程序开始出现不正常的行为。具体过程如下: 初始问题: 更换新的 PCI-1751 板卡后,驱动程序被更新,但程…

接上篇基于Alertmanager 配置钉钉告警

Alertmanager 是一个用于处理和管理 Prometheus 警报的开源工具。它负责接收来自 Prometheus 服务器的警报,进行去重、分组、静默、抑制等操作,并通过电子邮件、PagerDuty、Slack 等多种渠道发送通知。 主要功能 去重:合并相同或相似的警报&…

网络原理(三)—— 传输层 之 UDP 和 TCP协议

传输层 在传输层两大关键的协议就是UDP和TCP协议了,除此之外,还有别的传输层协议,本文章将介绍UDP和TCP协议,重点介绍TCP协议。 首先回顾TCP和UDP 的特点: UDP:不可靠传输,面向数据包&#xf…

针对服务器磁盘爆满,MySql数据库始终无法启动,怎么解决

(点击即可进入聊天助手) 很多站长在运营网站的过程当中都会遇到一个问题,就是网站突然无法打开,数据一直无法启动 无论是强制重启还是,删除网站内的所有应用,数据库一直无法启动 这个时候,就需要常见的运维手段了,需要对服务器后台各个资源,进行逐一排查…

高性能现代PHP全栈框架 Spiral

概述 Spiral Framework 诞生于现实世界的软件开发项目是一个现代 PHP 框架,旨在为更快、更清洁、更卓越的软件开发提供动力。 特性 高性能 由于其设计以及复杂精密的应用服务器,Spiral Framework框架在不影响代码质量以及与常用库的兼容性的情况下&a…

【面试题】Spring/SpringBoot部分[2025/1/6 ~ 2025/1/12]

Spring/SpringBoot部分[2025/1/6 ~ 2025/1/12] 1. 说说 Spring 启动过程?2. 说说 Springboot 的启动流程?3. 你了解的 Spring 都用到哪些设计模式?4. Spring 有哪几种事务传播行为?5. SpringBoot 是如何实现自动配置的?6. Spring…

【机器学习:十八、更高级的神经网络概念】

1. 梯度下降法的改进:Adam算法 1.1 Adam算法简介 Adam(Adaptive Moment Estimation)是一种优化算法,结合了动量梯度下降和 RMSProp 的优点,在处理稀疏梯度和高维空间优化时表现尤为出色。其核心在于动态调整每个参数…

计算机网络之---VPN与隧道协议

VPN与隧道协议 VPN(虚拟专用网络)和隧道协议是现代网络安全技术的重要组成部分,它们主要用于在不安全的公共网络(如互联网)上建立一个安全的私密网络连接。VPN通过加密通信和认证机制,确保数据的隐私性和完…

【STM32-学习笔记-6-】DMA

文章目录 DMAⅠ、DMA框图Ⅱ、DMA基本结构Ⅲ、不同外设的DMA请求Ⅳ、DMA函数Ⅴ、DMA_InitTypeDef结构体参数①、DMA_PeripheralBaseAddr②、DMA_PeripheralDataSize③、DMA_PeripheralInc④、DMA_MemoryBaseAddr⑤、DMA_MemoryDataSize⑥、DMA_MemoryInc⑦、DMA_DIR⑧、DMA_Buff…

SQL Server中可以通过扩展事件来自动抓取阻塞

在SQL Server中可以通过扩展事件来自动抓取阻塞,以下是详细流程: 开启阻塞跟踪配置: • 执行以下SQL语句来启用相关配置: EXEC sp_configureshow advanced options, 1; RECONFIGURE; EXEC sp_configure blocked process thresh…

DNS解析域名简记

域名通常是由: 权威域名.顶级域名.根域名组成的。 从左往右,级别依次升高,这和外国人从小范围到大范围的说话习惯相关。(我们自己是更习惯先说大范围再说小范围,如XX省XX市XX区XX路) DNS解析域名时,会先查…

【爬虫】单个网站链接爬取文献数据:标题、摘要、作者等信息

源码链接: https://github.com/Niceeggplant/Single—Site-Crawler.git 一、项目概述 从指定网页中提取文章关键信息的工具。通过输入文章的 URL,程序将自动抓取网页内容 二、技术选型与原理 requests 库:这是 Python 中用于发送 HTTP 请求…

关于扫描模型 拓扑 和 传递贴图工作流笔记

关于MAYA拓扑和传递贴图的操作笔记 一、拓扑低模: 1、拓扑工作区位置: 1、准备出 目标 高模。 (高模的状态如上 ↑ )。 2、打开顶点吸附,和建模工具区,选择四边形绘制. 2、拓扑快捷键使…

解决无法远程管理Windows Server服务器核心安装

问题 有时,人们会为了节省运算资源,例如运行Hyper-V虚拟机,而选择Windows Server核心安装,即无图形化界面。这时,我们就只能通过Powershell命令对其进行操控,或为了获得图形化界面而使用远程服务器管理工具…

SQL HAVING 子句深入解析

SQL HAVING 子句深入解析 介绍 SQL(Structured Query Language)是一种用于管理关系数据库管理系统的标准编程语言。在SQL中,HAVING子句是与GROUP BY子句一起使用的,用于筛选分组后的数据。它根据聚合函数的结果对组进行条件过滤…

【计算机网络】lab7 TCP协议

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀计算机网络_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 实验目的…

JavaRestClient 客户端初始化+索引库操作

1. 介绍 ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。 Elasticsearch目前最新版本是8.0,其java客户端有很大变化。不过大多数企业使用的还是8以下版本 2. 客户端初始化 在elastic…