详解go mod 使用方法

 更新时间:2022年05月07日 16:13:55   作者:小楼夜听雨QAQ  
golang 提供了 go mod命令来管理包,是go的一个模块管理工具,用来代替传统的GOPATH方案,本文给大家介绍go mod 使用方法,感兴趣的朋友一起看看吧

go modules 是 golang 1.11 新加的特性。现在1.12 已经发布了,是时候用起来了。Modules官方定义为:

模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。

如何使用 Modules ?

  • 把 golang 升级到 1.11(现在1.12 已经发布了,建议使用1.12)
  • 设置 GO111MODULE

go mod是go的一个模块管理工具,用来代替传统的GOPATH方案。下面是基本的使用方法:

假设我现在想要创建一个项目来学习go的语法,项目名为grammar,路径为 E:/go/grammar。

1、进入grammar文件夹

2、初始化目录

go mod init dayrain.cn/grammar

dayrain.cn/grammar是一个标识,一般是 主机名+模块名

初始化后,会自动创建一个go.mod文件,有go的版本号,以及所依赖的模块信息。

3、导入自定义的模块

新建一个lib1包,写一个简单的加法函数

add.go

package lib1
func Add(a int, b int) int {
	return a + b
}

在start.go中调用此方法

package main
import (
	"dayrain.cn/grammar/lib1"
)
func main() {
	res := lib1.Add(1, 1)
	print(res)
}

运行结果(go run start.go):

4、导入本地没有的模块

比如我想用日志打印刚才的res,可以修改start.go文件

package main
import (
	"dayrain.cn/grammar/lib1"
	"github.com/golang/glog"
)
func main() {
	res := lib1.Add(1, 1)
	glog.Info(res)
}

这个时候vscode给出错误提示

运行 go build命令

提醒我们要先go get github.com/golang/glog 获取模块

获取成功后,go.mod多了一行require。

常用命令

1、初始化模块

go  mod  init   模块名 

2 、获取远程的模块

go get  模块名         

3、 查看当前依赖模块

go list -m all           

4、清除未使用到的依赖

go mod tidy  

到此这篇关于gomod使用方法的文章就介绍到这了,更多相关gomod使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用go语言实现cors中间件

    使用go语言实现cors中间件

    CORS是一种浏览器安全机制,用于控制在Web应用程序中不同源(Origin)之间的资源共享,本文将给大家介绍如何使用go语言实现cors中间件,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2023-09-09
  • 代码整洁利器go fmt命令使用详解

    代码整洁利器go fmt命令使用详解

    这篇文章主要为大家介绍了代码整洁利器go fmt命令使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Air实现Go程序实时热重载使用过程解析示例

    Air实现Go程序实时热重载使用过程解析示例

    这篇文章主要为大家介绍了Air实现Go程序实时热重载使用过程解析示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • 使用Go语言创建WebSocket服务的实现示例

    使用Go语言创建WebSocket服务的实现示例

    这篇文章主要介绍了使用Go语言创建WebSocket服务的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • VSCode必装Go语言以下插件的思路详解

    VSCode必装Go语言以下插件的思路详解

    这篇文章主要介绍了VSCode必装Go语言以下插件的思路详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • Golang 并发控制模型的实现

    Golang 并发控制模型的实现

    Go控制并发有三种经典的方式,使用 channel 通知实现并发控制、使用 sync 包中的 WaitGroup 实现并发控制、使用 Context 上下文实现并发控制,下面就来介绍一下
    2024-08-08
  • Go语言动态并发控制sync.WaitGroup的灵活运用示例详解

    Go语言动态并发控制sync.WaitGroup的灵活运用示例详解

    本文将讲解 sync.WaitGroup 的使用方法、原理以及在实际项目中的应用场景,用清晰的代码示例和详细的注释,助力读者掌握并发编程中等待组的使用技巧
    2023-11-11
  • 详解Golang中Channel的高级用法

    详解Golang中Channel的高级用法

    在Go语言中,chan(通道)是一种用于在不同的goroutine之间进行通信的机制,通道可以是无缓冲的(同步的)或有缓冲的(异步的),本文给大家详细介绍了Golang中Channel的高级用法,需要的朋友可以参考下
    2024-05-05
  • gin自定义中间件解决requestBody不可重复读问题(最新推荐)

    gin自定义中间件解决requestBody不可重复读问题(最新推荐)

    这篇文章主要介绍了gin自定义中间件解决requestBody不可重复读问题,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Go语言下载网络图片或文件的方法示例

    Go语言下载网络图片或文件的方法示例

    这篇文章主要介绍了Go语言下载网络图片或文件的方法示例,文中通过示例代码介绍的非常详细,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12

最新评论