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.rhkb.cn/news/691.html

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

相关文章

【C语言系列】函数递归

函数递归 一、递归是什么?1.1尾递归 二、递归的限制条件三、递归举例3.1举例一:求n的阶乘3.2举例二:顺序打印一个整数的每一位 四、递归与迭代4.1举例三:求第n个斐波那契数 五、拓展学习青蛙跳台问题 一、递归是什么? …

编程题-二分查找

题目: 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1 解法一(循环遍历查找)&#xff…

关于大数据的基础知识(一)——定义特征结构要素

成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于大数据的基础知识(一&a…

【git】-2 分支管理

目录 一、分支的概念 二、查看、创建、切换分支 1、查看分支-git branch 2、创建分支- git branch 分支名 3、切换分支- git checkout 分支名 三、git指针 -实现分支和版本间的切换 四、普通合并分支 git merge 文件名 五、冲突分支合并 ​​​​​​【git】-初始gi…

Maven核心插件之maven-resources-plugin

前言 Maven 插件是 Maven 构建系统的重要组成部分,它们为 Maven 提供了丰富的功能和扩展能力,使得 Maven 不仅是一个构建工具,更是一个强大的项目管理平台。在 Maven 项目中,插件的使用通常通过配置 pom.xml 文件来完成。每个插件…

[云原生之旅] K8s-Portforward的另类用法, 立省两个端口

前言 此方法适用于Pod不需要大量连接的情况: 有多个pod在执行任务, 偶尔需要连接其中一个pod查看进度/日志;对pod执行一个脚本/命令; 不适用于大量连接建立的情况: pod启的数据库服务;pod启的Api服务;pod启的前端服务;pod启的Oss服务; Portforward简介 Portforward就是端…

MySQL进阶突击系列(05)突击MVCC核心原理 | 左右护法ReadView视图和undoLog版本链强强联合

2024小结:在写作分享上,这里特别感谢CSDN社区提供平台,支持大家持续学习分享交流,共同进步。社区诚意满满的干货,让大家收获满满。 对我而言,珍惜每一篇投稿分享,每一篇内容字数大概6000字左右&…

【微服务】面试 7、幂等性

幂等性概念及场景 概念:多次调用方法或接口不改变业务状态,重复调用结果与单次调用一致。例如在京东下单,多次点击提交订单只能成功一次。场景:包括用户重复点击、网络波动导致多次请求、mq 消息重复消费、代码中设置失败或超时重…

漏洞扫描工具

完整源码项目包获取→点击文章末尾名片! 漏洞检测 该模块主要是对目标Web系统进行安全漏洞扫描,包括SQL注入、跨站脚本攻击(XSS)、弱密码、中间件漏洞。中间件漏洞扫描包括对Weblogic、Struts2、Tomcat 、Jboss、Drupal、Nexus的已…

Mysql--基础篇--多表查询(JOIN,笛卡尔积)

在MySQL中,多表查询(也称为联表查询或JOIN操作)是数据库操作中非常常见的需求。通过多表查询,你可以从多个表中获取相关数据,并根据一定的条件将它们组合在一起。MySQL支持多种类型的JOIN操作,每种JOIN都有…

【数据结构】第1天之Java中的数据结构

前言 众所周知,程序数据结构算法,可见数据结构的重要性。 在Java中,数据结构通常指的是Java集合框架中的类和接口。 Java集合框架提供了一套标准的数据结构,例如列表、集合、映射表等,以及相应的实现类。 今天要分享的…

js代理模式

允许在不改变原始对象的情况下,通过代理对象来访问原始对象。代理对象可以在访问原始对象之前或之后,添加一些额外的逻辑或功能。 科学上网过程 一般情况下,在访问国外的网站,会显示无法访问 因为在dns解析过程,这些ip被禁止解析,所以显示无法访问 引…

docker-compose方式部署单机版RocketMQ

1、准备工作目录和配置文件 rocketmq\_ conf/broker.conf\_ docker-compose.yml在 rocketmq/conf/ 目录下面,创建broker.conf文件: # Broker所属的集群名称,默认是DefaultCluster brokerClusterNameDefaultCluster# Broker的名称 brokerNam…

有收到腾讯委托律师事务所向AppStore投诉带有【水印相机】主标题名称App的开发者吗

近期,有多名开发者反馈,收到来自腾讯科技 (深圳) 有限公司委托北京的一家**诚律师事务所卞,写给AppStore的投诉邮件。 邮件内容主要说的是,腾讯注册了【水印相机】这四个字的商标,所以你们这些在AppStore上的app&…

爬虫基础之爬取歌曲宝歌曲批量下载

声明:本案列仅供学习交流使用 任何用于非法用途均与本作者无关 需求分析: 网站:邓紫棋-mp3在线免费下载-歌曲宝-找歌就用歌曲宝-MP3音乐高品质在线免费下载 (gequbao.com) 爬取 歌曲名 歌曲 实现歌手名称下载所有歌曲 本案列所使用的模块 requests (发送…

Java 如何传参xml调用接口获取数据

传参和返参的效果图如下: 传参: 返参: 代码实现: 1、最外层类 /*** 外层DATA类*/ XmlRootElement(name "DATA") public class PointsXmlData {private int rltFlag;private int failType;private String failMemo;p…

java项目之在线文档管理系统源码(springboot+mysql+vue+文档)

大家好我是风歌,曾担任某大厂java架构师,如今专注java毕设领域。今天要和大家聊的是一款基于springboot的在线文档管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 在线文档管理系统的主要使用者分为管…

学技术步骤,(tomcat举例)jar包api手写tomcat静态资源基础服务器

1.看有哪些包,能用本地离线的包就使用离线包 2.尽量不要使用配置文件(先不用),能用api就用api, 因为配置文件只是文本,其实要的只是配置文件里的参数, 这些参数最后肯定还是要给到这些api去处…

React中createRoot函数原理解读——Element对象与Fiber对象、FiberRootNode与HostRootNode

【2024最新版】React18 核心源码分析教程(全61集) Element对象与Fiber对象 在 React 中,Element 对象 和 Fiber 对象 是核心概念,用于实现 React 的高效渲染和更新机制。以下是它们的详细解读: 1. Element 对象 定…

如何用SQL语句来查询表或索引的行存/列存存储方式|OceanBase 用户问题集锦

一、问题背景 自OceanBase 4.3.0版本起,支持了列存引擎,允许表和索引以行存、纯列存或行列冗余的形式创建,且这些存储方式可以自由组合。除了使用 show create table命令来查看表和索引的存储类型外,也有用户询问如何通过SQL语句…