【GO语言笔记】简单了解GOPATH、GOROOT以及GOMOD

前言

第一次接触到go语言,发现go语言的规范有点云里雾里,搞不清楚他们之间的关系。因此,我写了这篇笔记,梳理一下他们之间的关系及区别,也让大家少走弯路。

简介

Go语言在不同版本中对项目的工作空间管理采用了不同的方式,这包括了GOPATHGOROOTGo Modules(通常简称为gomod)。

GOPATH

  • GOPATH是Go语言早期版本中用于指定工作空间的路径,它是一个环境变量,用来定义三个主要的目录:src(存放源代码)、bin(存放编译后的二进制文件)、pkg(存放编译后的包文件)。
  • 简而言之,GOPATH指向项目所在路径。

GOROOT

  • GOROOT是Go语言的安装目录,它包含了Go语言的标准库、编译器等核心组件。
  • 通常用户不需要修改GOROOT,因为它在安装Go时就已经被设置好了。
  • 简而言之,GOROOT指向编译器存储路径。

GOPATH的局限性

GOPATH只能设置一条路径。这意味着我们有多个项目同时开发时,要么把所有项目均存储到src目录下,要么每换一次项目开发时都更改GOPATH。前者会造成项目管理混乱,后者略显繁琐。
因此从Go 1.11版本开始,Go引入了对模块的支持,GOPATH的使用逐渐被推荐为单一工作空间的模式所取代。

Go Modules(gomod)

  • 从Go 1.11版本开始,Go引入了模块的概念,这是Go语言的依赖管理工具。
  • 模块允许开发者在项目中指定依赖的确切版本,解决了版本控制和依赖冲突的问题。
  • 使用go mod命令可以管理模块依赖,例如go mod init初始化模块、go mod tidy整理依赖等。
  • 从Go 1.13版本开始,Go Modules成为了官方推荐的依赖管理方式,并且在Go 1.15中,Go Modules成为了默认的依赖管理方式。

Go Modules的出现极大地简化了Go项目的依赖管理,使得开发者可以更容易地构建和维护大型项目。

总结

Goland也给出了一种解决方式,它在设置中可以为每一个项目都设置一个GOPATH
但是GOMOD已经成为推荐的方式,因此初学者建议是无需学习GOPATH相关的繁琐设置,直接学习GOMOD即可。如果有需要,回过头来再看可以大大节约学习成本。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值