当前位置: 首页 > 面试题库 >

在子包中引用包main

谈禄
2023-03-14
问题内容

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导入程序包路由。

任何帮助将非常感激!


问题答案:

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

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



 类似资料:
  • 闭包是 JavaScript 一个非常重要的特性,这意味着当前作用域总是能够访问外部作用域中的变量。 因为 函数 是 JavaScript 中唯一拥有自身作用域的结构,因此闭包的创建依赖于函数。 模拟私有变量 function Counter(start) { var count = start; return { increment: function() {

  • 我使用elasticsearch创建了一个程序,允许在文本中找到引用圣经的所有地方,以及提到经文的地方。我在elasticsearch中索引了圣经的所有经文,当我通过部分键入经文进行搜索时,每一经文都是一个文档,我找到了正确的结果(即使出错)如何浏览文本来找到引用经文(甚至部分)的所有地方,从而将经文的来源归因于他们?和容忍错误(我想用模糊性参数或使用同义词) 我的索引示例: 我需要找到索引中的段

  • 在本章中,我们将讨论如何在.NET Core应用程序中添加包以及如何查找特定的包。 我们可以直接去NuGet并添加包,但是在这里可以从其他一些地方查找加入。 现在让我们来看看位于下面链接的.NET Core的源代码 - http://github.com/dotnet/corefx 在CoreFx repo中,打开文件夹 - 会看到对应于不同包的文件夹的整个列表。现在搜索 - 还有另外一种方法可以

  • 我在Python3子流程模块中遇到错误。子进程围绕着一些重要的位置参数,我用unicode引号将其括起来,这会导致linux命令find失败。 其他人有这个问题吗?我基本上是想弄清楚这是我这边的配置错误,还是应该把它作为子流程团队的一个问题发布。我相信我可以在我的代码中解决它,但它看起来像一个应该被压扁的错误。 在我看来,子流程正在强制find将路径字符串用unicode引号括起来,而bash只是

  • 使用电子钱包 若要使用此机能,可能需先更新系统软件。 进入(PlayStation®Store),可使用电子钱包,购买各种需付费商品或服务。每个PlayStation®Network的主账户都准备了一个电子钱包。使用电子钱包前,需先预付电子货币。 预付电子货币 可使用信用卡、PlayStation®Network Card*,替账户预付电子货币。可选择之预付方法、货币和预付上限额等因国家或区域而异

  • 我试图用JAXB从XSD生成java类。 XSD是我公司的官方XSD,因此我不能仅为我的项目修改它们。在害怕在这个网站上尝试和搜索之后,我决定直接问这个问题。 我有这个在我的XSD: 这导致了一个问题:包装。指数行已在包中定义。指数 在查看生成的代码后,我可以看到,我们有一个静态的类行,进入另一个静态的内部类行(在另一个索引下) 我得到错误的行(在顶部底部)嵌套的类型行不能隐藏封闭类型 如果名称发