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

关于如何避免Go中的导入周期的任何好的建议?

司空炯
2023-03-14
问题内容

我在Go项目上工作了一个月。好消息是Go确实非常高效。但是经过一个月的开发,我已经有数千行代码和许多行packages。对于我来说,要避免导入周期是一个主要问题,每当出现导入周期错误时,我都不知道第一次出现问题的位置。

Go编译器也只有非常简单的通知,即始终不足以快速定位问题,例如:main.go:7:3: import cycle not allowed。它只会帮助您知道哪个文件可能会导致问题,但仅此而已。由于import随着代码的增长关系会越来越复杂,所以我很想知道如何在Go中更有效地避免导入周期。任何帮助深表感谢。


问题答案:
go list -f '{{join .Deps "\n"}}' <import-path>

<import-path>如果<import-path>为空,则将在-或当前目录中显示软件包的导入依赖关系。或者

go list -f '{{join .DepsErrors "\n"}}' <import-path>

希望能显示一些有用的信息。另请参阅输出

go help list

有关转到列表工具的其他信息。



 类似资料:
  • 问题内容: 我知道python中的循环导入问题已经出现过很多次了,我已经阅读了这些讨论。在这些讨论中反复提出的意见是,循环导入表明设计不良,应重新组织代码以避免循环导入。 有人可以告诉我在这种情况下如何避免循环导入吗?:我有两个类,并且我希望每个类都有一个构造函数(方法),该构造函数接受另一个类的实例并返回该类的实例。 更具体地说,一类是可变的,一类是不变的。哈希,比较等需要不可变的类。可变类也需

  • 我的自定义UIViewController子类具有存储的闭包属性。闭包签名被定义为采用相同类型的类的单个参数: ...这个想法是,对象将自己作为处理程序的参数传递回去,有点像UIAlertAction初始化器。 此外,为了方便起见,我有一个工厂类方法: ...它执行以下操作: 创建视图控制器的实例, 将完成处理程序分配给属性, 在调用时从顶部/根视图控制器以模态方式呈现它。 我的视图控制器肯定在泄

  • 本文向大家介绍关于Python如何避免循环导入问题详解,包括了关于Python如何避免循环导入问题详解的使用技巧和注意事项,需要的朋友参考一下 前言 Python 中使用package时,出现循环导入问题十分常见,我们创建如下package来说明这个问题: 其中, __init__.py 将pkg指定为一个Python package module_a.py中定义了一个action_a()函数,该

  • 问题内容: 因此,我有一个要解决的导入周期。我有以下模式: 总体思路是,操作是在视图上执行的,并由视图执行: 然后在view.go中调用它: 但这会导致一个周期,因为View依赖于Action包,反之亦然。我该如何解决这个周期?有其他方法可以解决此问题吗? 问题答案: 导入周期表明设计存在根本错误。从广义上讲,您正在查看以下内容之一: 您正在混合担忧。也许根本不应该访问,或者不应该负责更改视图名称

  • 我使用Java实现了很多Selenium测试—有时,我的测试会因为StaleElementReferenceException而失败。 你能建议一些使测试更稳定的方法吗?

  • 问题内容: 我有以下选择查询创建: jOOQ生成以下查询: 查询应为: 后者查询在PostgreSQL中完美地工作。表别名不应用引号引起来。 这是一个错误吗? (请注意,该查询非常愚蠢。我正在使用jOOQ进行评估。) 以下“黑客”作品: 问题答案: 默认情况下,jOOQ会将所有标识符包装在引号中,以便能够正确处理区分大小写的情况。 令人困惑的部分是为什么这么做并不是为了做到而是为了做到。原因是jO