一尘不染

在子包中引用包main

go

Golang的新手,并提出了一个看似简单的问题。如果我logger.go在项目根目录的main包中有一个logger(并在中定义),那么该如何在子包(即my
routes package)中引用该logger ?

我的目录结构是:

  • main.go
  • logger.go
  • routes \ routes.go

我认为如果Logger是公共的,它已经可以用于路由了,但是我在中得到了“ undefined:Logger”
routes.go。而且,如果我尝试导入主程序包,routes.go则会收到“不允许导入周期”错误,因为routes.go导入程序包主程序和main.go导入程序包路由。

任何帮助将非常感激!


阅读 251

收藏
2020-07-02

共1个答案

一尘不染

解决此问题的唯一方法是将共享记录器移至第三个程序包,并将其导入到main和中routes。否则,您将获得一个循环依赖性,如您所见,它是不允许的。

只需添加一个名为的文件夹logger,然后将记录器放在其中。现在将其导入其他2个软件包中,您就完成了。

2020-07-02