在子包中引用包 main

Referencing package main in a subpackage

Golang 新手,有一个看似简单的问题。如果我的项目根目录下的主包中有一个记录器(并在 logger.go 中定义),我如何在子包中引用该记录器(即:我的 routes package)?

我的目录结构是:

我认为如果 Logger 是 public,它就已经可以用于路由,但我在 routes.go 中得到 'undefined: Logger'。如果我尝试在 routes.go 中导入我的主包,我会收到 'import cycle not allowed' 错误,因为 routes.go 导入包 main 并且 main.go 导入包路由。

如有任何帮助,我们将不胜感激!

解决此问题的唯一方法是将共享记录器移动到第三个包并将其导入到 mainroutes 中。否则你会得到一个循环依赖,如你所见,这是不允许的。

只需添加一个名为 logger 的文件夹并将您的记录器放在那里。现在将它导入到其他 2 个包中,你就完成了。