登录
首页 >  Golang >  Go问答

理解Golang的包和模块系统的复杂性

来源:stackoverflow

时间:2024-03-02 15:39:25 454浏览 收藏

小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《理解Golang的包和模块系统的复杂性》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

问题内容

老实说,golang 的包和模块系统似乎是我曾经处理过的最不必要的复杂事情。我不知道这是否只是我不理解,缺乏关于这个主题的信息,或者只是一般的 golang。

我已经创建了一个 go 项目,但我不想立即发布该项目或上传到 github。它不在我设置的 gopath 内部,因为根据我对模块引入的理解,您可以在 gopath 之外编写项目。 项目布局是这样的

──── MyProject
     ├─── project
     │    ├─── pkg1
     │    │    └─── foo.go
     │    ├─── pkg2
     │    │    └─── bar.go
     │    └─── go.mod
     └─── test
          └─── test.go

test.go 中,我希望我可以做类似 import "project/pkg1" 的事情,但我不明白如何让它工作。即使我将 test.go 移动到项目内并输入 import "/pkg1" ,我也会收到 cannot import absolute path 错误。

我真的不想一直在 %gopath%/src 中编写我的所有 go 项目,这样做似乎很愚蠢。

这可能只是我不理解。对此的任何帮助,无论是教程还是网站的链接,将不胜感激。谢谢。


正确答案


如果您是 go 新手,我建议您使用 go.mod 和扁平项目结构。使用实际代码进行测试。任何以 _test.go 为后缀的内容都不会被包含在内。

go.mod
foo.go
foo_test.go
bar.go
bar_test.go

如果这是一个库,请输入您想要的包名称。

如果这是一个可执行应用程序,请将 main 设置为根包名称。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>