Go 中的多包目录结构
开发 Go 项目时,可能需要结合库和命令行同一目录中的界面(CLI)。但是,同一目录中不可能有两个同名的包,从而导致编译错误。
解决方案:嵌套包
解决此问题问题,您可以在同一目录中创建一个新文件夹来存放包。通过将库或 CLI 包移动到这个新文件夹中,您可以有效地嵌套包。
例如,考虑以下目录结构:
whatever.io/ myproject/ main.go lib/ myproject.go cli/ main.go
在此结构中, lib 文件夹包含库包 (myproject),cli 文件夹包含 CLI 包 (main)。根目录中的 main.go 文件作为 CLI 应用程序的入口点。
要将库包导入到您的代码中,您可以使用以下导入语句:
import "whatever.io/myproject/lib/myproject"
记住将$GOPATH环境变量设置为嵌套包的父目录。这允许编译器正确解析导入路径。
嵌套包的好处
使用嵌套包有几个好处:
总而言之,虽然它是同一目录中不可能有两个同名的包,您可以通过在新文件夹中嵌套包来实现类似的功能。这种方法为您的 Go 项目提供了灵活性和模块化。
以上是如何在同一目录中构建一个包含库和 CLI 的 Go 项目?的详细内容。更多信息请关注PHP中文网其他相关文章!