首页 >后端开发 >Golang >多个Go包可以共存于一个目录中吗?

多个Go包可以共存于一个目录中吗?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-03 18:56:11393浏览

Can Multiple Go Packages Coexist in a Single Directory?

处理同一目录中的多个包

问题:

维护是否可行一个包内有两个包目录?

背景:

在项目同时包含库和命令行界面 (CLI) 的场景中,出现的问题是:将它们构建为同一目录中的单独包。这种担忧源于编译项目时的潜在冲突,因为包 main 和 func main 声明对于运行 CLI 至关重要,但与库所需的包 myproject 声明冲突。

答案:

要解决此问题,建议在主目录中创建一个新的子文件夹,并将库或 CLI 移动到新文件夹。这样可以确保两个包之间的隔离并避免命名冲突。

解决方案:

  1. 在主项目中创建一个新文件夹,例如 lib 或 bin目录。
  2. 将库 (myproject.go) 或 CLI (main.go) 移动到新目录文件夹。
  3. 确保使用正确的 $GOPATH 引用将移动的包导入到其他包中。

示例:

考虑以下示例结构:

whatever.io/
    myproject/
        main.go
        lib/
            myproject.go

在本例中,库 myproject 已移动到lib 子文件夹。 main.go 文件现在可以使用以下方式导入库:

import "../lib/myproject"

这种方法在解决编译冲突的同时保留了项目的组织。

其他资源:

  • [go build 与 go build file.go](https://stackoverflow.com/questions/29096547/go-build-vs-go-build-file-go)

以上是多个Go包可以共存于一个目录中吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn