我怎样才能克服Golang的要求,即每个包都有可构建的代码?

时间:2016-02-05 02:21:51

标签: go

我正在Go中构建一个Web应用程序,作为其中的一部分,我定义了几个middelware函数。现在他们都住在“我的/中间件”包中。我已定义的所有不同功能使该命名空间变得非常混乱,因此我决定将它们全部放在它们自己的子目录中,例如: “我/中间件/压缩程序”。当我这样做时,我得到错误:

no buildable Go source files my/middleware

我不希望所有这些函数都在同一个命名空间中,但似乎我唯一的选择是在my / middleware目录中使用一个空的init函数或其他东西创建一个占位符.go文件。这听起来很糟糕,所以我想了解如何在父包中没有任何共享/公共代码的情况下实现我的目标,即对类似的包进行分组。

1 个答案:

答案 0 :(得分:0)

您实际上是通过将文件拆分为不同的子文件夹来做出正确的决定。它与这里所做的并没有什么不同 https://golang.org/pkg/compress/ 这允许框架的客户端只采用他们需要的东西。这个想法是为了避免依赖性膨胀。 Go就是精益求精。 您收到的错误是因为您尝试构建不存在的包。将该文件夹视为逻辑分组机制,您需要单独构建子文件夹给出的包。