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,一经查实,立即删除!

相关文章

鸿蒙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…

【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…

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

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

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

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

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

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

【计算机网络】lab7 TCP协议

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

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

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

【JVM-2.2】使用JConsole监控和管理Java应用程序:从入门到精通

在Java应用程序的开发和运维过程中,监控和管理应用程序的性能和资源使用情况是非常重要的。JConsole是Java Development Kit(JDK)自带的一款图形化监控工具,它可以帮助开发者实时监控Java应用程序的内存、线程、类加载以及垃圾回收…

基于html5实现音乐录音播放动画源码

源码介绍 基于html5实现音乐录音播放动画源码是一款类似Shazam的UI,点击按钮后,会变成为一个监听按钮。旁边会有音符飞入这个监听按钮,最后转换成一个音乐播放器。 效果预览 源码获取 基于html5实现音乐录音播放动画源码

《自动驾驶与机器人中的SLAM技术》ch1:自动驾驶

目录 1.1 自动驾驶技术 1.2 自动驾驶中的定位与地图 1.1 自动驾驶技术 1.2 自动驾驶中的定位与地图 L2 在技术实现上会更倾向于实时感知,乃至可以使用感知结果直接构建鸟瞰图(bird eye view, BEV),而 L4 则依赖离线地图。 高精地…

【LeetCode】:删除回文子数组【困难】

class Solution { public:// 思考:能否用滚动数组进行优化int minimumMoves(vector<int>& arr) {// 定义状态dp[i][j]为i-j的最小步数int n arr.size();vector<vector<int>> dp(n, vector<int>(n, 1e9 7));// 可以把这 1 次理解为一种 最小操作单…

ChatGPT入门之文本情绪识别:先了解LSTM如何处理文字序列

文章目录 0. 首先聊聊什么是RNN1. 理解LSTM&#xff0c;从数据如何喂给 LSTM开始2. LSTM每个门是如何处理序列数据的&#xff1f;2.1 遗忘门&#xff08;Forget Gate&#xff09;&#xff1a;该忘掉哪些信息&#xff1f;2.2 输入门&#xff08;Input Gate&#xff09;&#xff…

AI学习路线图-邱锡鹏-神经网络与深度学习

1 需求 神经网络与深度学习 2 接口 3 示例 4 参考资料