需要帮助来理解Golangs包和模块系统的混乱[已关闭]

idfiyjo8  于 2023-06-19  发布在  Go
关注(0)|答案(1)|浏览(146)

**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答复。

此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
两年前关闭。
Improve this question
老实说,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项目,这样做似乎很愚蠢。
这可能只是我不理解。在这方面的任何帮助,无论是一个教程或网站的链接,将不胜感激。谢谢

7rfyedvj

7rfyedvj1#

如果你是刚开始使用go,我建议你使用go.mod和一个扁平的项目结构。使用实际代码进行测试。任何以_test.go为后缀的内容都将不包括在内。

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

如果这是一个库,把包的名称,无论你想要的。
如果这是一个可执行的应用程序,则将main设置为根包名称。

相关问题