猿问

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

我正在用 Go 构建一个 Web 应用程序,作为其中的一部分,我定义了几个中间件函数。现在他们都住在“我的/中间件”包中。这个命名空间被我定义的所有不同函数变得非常混乱,所以我决定把它们都放在它们自己的子目录中,例如“my/middleware/gzip”。当我这样做时,我收到错误:

no buildable Go source files my/middleware

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


弑天下
浏览 147回答 1
1回答

至尊宝的传说

通过将文件拆分到不同的子文件夹中,您实际上做出了正确的决定。它与此处所做的没有什么不同 https://golang.org/pkg/compress/ 这允许您的框架的客户端仅获取他们需要的内容。这个想法是为了避免依赖膨胀。Go 就是精益求精。您收到的错误是因为您尝试构建一个不存在的包。将该文件夹视为一种逻辑分组机制,您需要单独构建子文件夹给出的包。
随时随地看视频慕课网APP

相关分类

Go
我要回答