最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《Go 模块与包》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~
问题内容刚刚开始了解 Go 模块。我有一个关于在同一模块中导入本地包的问题。我正在查看的示例是这个存储库:
https://github.com/Azure/azure-service-bus-go
该模块是 module github.com/Azure/azure-service-bus-go
。该模块内有一个单独的包 atom
(但它本身不是一个模块)。
当主包中的文件导入atom时,它们会这样做: import "github.com/Azure/azure-service-bus-go/atom"
-- 请参阅 queue_manager.go
作为示例。
我不太明白——GO 如何知道查看本地 Atom 包,而不是 Github 上的包?让我感到困惑的是,正在修改的模块的一部分是由远程/绝对 URI 引用的。是否可以保证,如果我修改本地磁盘上的文件并构建,我实际上引用的是最新版本,而不是已经推送的版本?
作为一个玩具练习,我尝试创建一个具有不存在的 Github URI 的模块,事实上 go mod tidy
试图在 Github 上查找该模块,尽管本地副本实际上存在
解决方案
- 模块是 Go 包的集合。
- 包是 .go 文件的目录。使用包,您可以组织您的 代码转换成可重用的单元。
- 我们可以添加模块到go项目中或者升级模块版本。
文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Go 模块与包》文章吧,也可关注编程网公众号了解相关技术文章。