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 main
    
    import "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的基础语法吧。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构与算法之链表: LeetCode 234. 回文链表 (Ts版)

回文链表 https://leetcode.cn/problems/palindrome-linked-list/description/ 描述 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表如果是,返回 true ;否则,返回 false 示例 1 输入:head [1,2,2,1]…

Hive4.0.1集群安装部署(Hadoop版本为3.3.6)(详细教程)

前置环境 ​​​Linux环境Zookeeper集群安装(详细教程)-CSDN博客 Hadoop HA高可用集群3.3.6搭建(详细教程)-CSDN博客 MySQL8.0.40离线安装(详细教程)_mysql 8.0.40 ftp-CSDN博客 Hadoop3.3.6官网下载链接地…

Windows安装ES单机版设置密码

下载ES ES下载链接 我用的是7.17.26 启动前配置 解压之后打开D:\software\elasticsearch-7.17.26\bin\elasticsearch-env.bat 在elasticsearch-env.bat文件中修改jdk的路径 修改前 修改内容 if defined ES_JAVA_HOME (set JAVA"D:\software\elasticsearch-7.17.26\…

Wireshark抓包教程(2024最新版个人笔记)

改内容是个人的学习笔记 Wireshark抓包教程(2024最新版)_哔哩哔哩_bilibili 该课程笔记1-16 wireshark基础 什么是抓包工具:用来抓取数据包的一个软件 wireshark的功能:用来网络故障排查;用来学习网络技术 wireshark下…

云平台一键部署【Video-Background-Removal】视频换背景,无任何限制,随意换

Video-Background-Removal 是一款革命性的视频背景替换工具,旨在让用户轻松实现视频背景的快速更换。无论你是专业创作者还是普通用户,这款软件都能让你在几秒钟内改变背景,完全消除限制,随心所欲,随时随地想换就换&am…

2025年,华为认证HCIA、HCIP、HCIE 该如何选择?

眼看都到 2025 年啦,华为认证还吃香不? 把这问题摆在每个网络工程师跟前,答案可没那么容易说清楚。 到底考不考它值当不值当,重点在于您自己的职业规划,还有对行业走向的领会。 2025 年华为认证仍然值得一考&#…

使用 Docker 部署 Java 项目(通俗易懂)

目录 1、下载与配置 Docker 1.1 docker下载(这里使用的是Ubuntu,Centos命令可能有不同) 1.2 配置 Docker 代理对象 2、打包当前 Java 项目 3、进行编写 DockerFile,并将对应文件传输到 Linux 中 3.1 编写 dockerfile 文件 …

学习threejs,使用TrackballControls相机控制器

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.TrackballControls 相…

C# OpenCV机器视觉:转速测量

在一个看似平常却又暗藏神秘能量的日子里,阿杰正在他那充满科技感的实验室里,对着一堆奇奇怪怪的仪器发呆。突然,手机铃声如一道凌厉的剑气划破寂静,原来是工厂的赵厂长打来的紧急电话:“阿杰啊,咱们工厂新…

机器视觉4-损失函数与梯度计算

机器视觉4-损失函数与梯度计算 损失函数定义公式及变量含义整体理解 多类支撑向量机损失正则项与超参数什么是超参数一、与模型参数的区别二、常见的超参数三、调参方法 什么是优化一、参数优化的重要性二、利用损失函数进行反馈三、调整分类器参数的方法 优化的目标一、最小化…

网络安全-RSA非对称加密算法、数字签名

数字签名非常普遍: 了解数字签名前先了解一下SHA-1摘要,RSA非对称加密算法。然后再了解数字签名。 SHA-1 SHA-1(secure hash Algorithm )是一种 数据加密算法。该算法的思想是接收一段明文,然后以一种不可逆的方式将…

Lianwei 安全周报|2025.1.13

新的一周又开始了,以下是本周「Lianwei周报」,我们总结推荐了本周的政策/标准/指南最新动态、热点资讯和安全事件,保证大家不错过本周的每一个重点! 政策/标准/指南最新动态 01 美国国土安全部发布《公共部门生成式人工智能部署手…

LabVIEW部署Web服务

目录 LabVIEW部署Web服务1、创建项目2、创建Web服务3、新建WebVI3.1、使用GET方法3.2、使用POST方法 4、 部署和对应URL4.1、应用程序:80804.2、本地调试:80094.3、NI Web服务器:9090(禁用) 5、测试5.1、测试GET方法5.2、测试POST方法 6、实际…

初阶数据结构【栈及其接口的实现】

目录 前言一、栈的概念及结构二、栈的实现方式三、栈的实现3.1 基本结构3.2 栈的基本功能接口栈的初始化栈的销毁 3.3 入栈接口3.4 出栈接口3.5 栈的其它接口获取数据的个数接口栈判断是否为空接口获取栈顶数据接口 注:为什么要实现这些简单的接口,直接调…

基于Java+SpringBoot+Vue的前后端分离的体质测试数据分析及可视化设计

基于JavaSpringBootVue的前后端分离的体质测试数据分析及可视化设计 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码…

Github配置ssh key,密钥配对错误怎么解决?

解决密钥配对的方案如下: 方法一、最有效的方案:重新配置,验证 SSH 密钥是否已添加到 GitHub 确保您的 SSH 密钥已经正确添加到了 GitHub 账户中。您可以打开命令行控制台(cmd/powerShell都可以),按照以下…

HarmonyOS鸿蒙开发 弹窗及加载中指示器HUD功能实现

HarmonyOS鸿蒙开发 弹窗及加载中指示器HUD功能实现 最近在学习鸿蒙开发过程中,阅读了官方文档,在之前做flutter时候,经常使用overlay,使用OverlayEntry加入到overlayState来做添加悬浮按钮、提示弹窗、加载中指示器、加载失败的t…

STL之VectorMapList针对erase方法踩坑笔记

前沿 如下总结的三种容器,开头都会涉及当前容器的特点,再者就本次针对erase方法的使用避坑总结。 一.Vector vector关联关联容器,存储内存是连续,且特点支持快速访问,但是插入和删除效率比较地(需要找查找和移动)。另…

【Rust】引用与借用

目录 思维导图 1. 引用与借用的基本概念 1.1. 引用示例 2. 借用的规则 2.1. 可变借用示例 2.2. 借用的限制 3. 引用的生命周期 思维导图 1. 引用与借用的基本概念 引用的定义:引用是一种指向数据的指针,但与裸指针不同,Rust的引用在编…

《自动驾驶与机器人中的SLAM技术》ch8:基于 IESKF 的紧耦合 LIO 系统

紧耦合系统,就是把点云的残差方程直接作为观测方程,写入观测模型中。这种做法相当于在滤波器或者优化算法内置了一个 ICP 或 NDT。因为 ICP 和 NDT 需要迭代来更新它们的最近邻,所以相应的滤波器也应该使用可以迭代的版本,ESKF 对…