🌺每天分享一些包括但不限于计算机基础、算法等相关的知识点🌺

💗点关注不迷路,总有一些📖知识点📖是你想要的💗

⛽️今天的内容是   go常见问题import cycle not allowed     ⛽️💻💻💻

曾有人建议作者之一的Rob Pike,在以后的Go版本去掉不允许循环引入的问题;Rob Pike则认为这样设计可以: 

  1. 加快编译速度
  2. 规范框架设计,使项目结构更加清晰明了
  • 没有支持循环引用:目的是迫使 Go 程序员更多地考虑程序的依赖关系。

    • 保持依赖关系图的简洁。

    • 快速的程序构建。

  • 如果支持循环引用:很容易会造成懒惰、不良的依赖性管理和缓慢的构建。这是设计者不希望看见的。

    • 混乱的依赖关系。

    • 缓慢的程序构建

如果在项目中出现循环引用问题,很大程度是因为设计之初就没考虑好模块的划分。

解决循环引用的方法

  1. 将循环引用的方法或者函数抽象成接口;
  2. 新建一个公共包,将涉及的函数或方法放到公共包当中;