登录
首页 >  Golang >  Go问答

我在 Golang 中将自己的包的代码放在哪里

来源:stackoverflow

时间:2024-04-07 11:48:37 322浏览 收藏

小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《我在 Golang 中将自己的包的代码放在哪里》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

问题内容

假设 gopath=c:\data\go 然后假设:

C:\
  DATA\
    go\
      bin\
      pkg\
      src\

我的理解是,bin 用于编译的“命令”,正如文档中的短语一样,我认为它们指的是编译的命令行应用程序。

pkg 用于已安装的软件包,每个软件包都位于其父 os+architecture 文件夹下。

src 用于我的代码,每个“项目”都在一个子文件夹下。我不确定我的“项目”文件夹在技术上是否被称为“存储库”、“模块”或“包”?或者其中任何一个,取决于它是什么?

我的问题:如果我编写自己的模块或包,即可重用包,那么我应该将其保留在 srcpkg 下吗?

基本的 go 语言的阅读时间不到几个小时,可惜文件夹约定让我头疼了好几天,而且出现了工具错误。


解决方案


这就是我们几年来的做法(看起来效果很好):

有一个父目录(将其命名为 src 或其他名称)。该目录包含项目列表。每个项目都有自己的模块(即有自己的 go.mod 文件)。

因为有时您需要在项目之间共享代码,所以我们最终有一个名为 shared 的项目,它有自己的模块,供不同的其他项目使用。虽然说实话,有几次很难确定一个模块属于 project_x 还是 shared。所以你可能要小心。

编辑:忘记提及 cmd 用于项目内的主应用程序,而 pkg 用于外部应用程序将使用的库代码。

这种结构的示例树如下:

src
├── project_1
│   ├── cmd
│   ├── go.mod
│   ├── go.sum
│   └── pkg
├── project_2
│   ├── cmd
│   ├── go.mod
│   ├── go.sum
│   └── pkg
├── shared
│   ├── README.md
│   ├── cmd
│   ├── go.mod
│   ├── go.sum
│   └── pkg
|       ├── pkg_1
|       │   ├── README.md
|       │   ├── fi1e_1.go
|       │   └── fi1e_2.go
|       ├── pkg_2
|       │   ├── README.md
|       │   └── fi1e_1.go
|       ├── pkg_3
|       │   ├── pkg_3_1
|       |   |   ├── file_1.go
|       |   |   └── file_2.go
|       │   ├── pkg_3_2
|       │   └── pkg_3_3
|       └── util
|           ├── README.md
|           ├── common.go
|           └── logger.go
└── tools
    ├── README.md
    ├── go.mod
    ├── go.sum
    ├── tool_1
    ├── tool_2
    └── tool_3

好了,本文到此结束,带大家了解了《我在 Golang 中将自己的包的代码放在哪里》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

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