GO不支持循环引用的原因有哪些

技术GO不支持循环引用的原因有哪些这篇文章将为大家详细讲解有关GO不支持循环引用的原因有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。其中一点就是包的循环引用的报错:package

本文将详细解释GO不支持循环引用的原因。边肖觉得挺实用的,就分享给大家参考。希望你看完这篇文章能有所收获。

其中一点就是包的循环引用的报错:

package命令行参数

importsgithub.com/eddycjy/awesome-project/a

importsgithub.com/eddycjy/awesome-project/b

Importgithub.com/eddycjy/awesome-project/a:进口公司突然变得非常困惑。为什么Go不支持包之间的循环引用?这很令人费解。还会影响性能吗?

下图:

GO不支持循环引用的原因有哪些

今天炸鱼就跟大家分享一下背后的原因。

00-1010这里我们做一个基础案例Demo,方便从未接触过的同学建立初步认知。我们的程序分别有两个包。

package a 的代码如下:

导入(

github.com/eddycjy/awesome-project/b '

)

FuncHello(s string){ 0

b.打印

}package b 的代码如下:

导入(

fmt '

github.com/eddycjy/awesome-project/a '

)

FuncHello(){ 0

A.你好(“我脑袋里的炸鱼”)

}

functprint(s string){ 0

fmt。打印

}然后调用main.go文件中的a.Hello('我心目中的炸鱼')方法。

一运行,就会出现如下错误提示:

包命令行参数

进口github.com/eddycjy/awesome-project/a

进口github.com/eddycjy/awesome-project/b

不允许github.com/eddycjy/awesome-project/a:进口周期

错误的本质原因是a包引用b包,b包引用a包,导致循环引用。

这在Go语言中是被禁止的,程序在编译过程中会被中断,导致编译失败。

00-1010按照Go官方的统一意见,循环导入包几乎是不可能的,甚至Go2也被明确拒绝。

因为Go2可能是打破和改变很多核心问题的关键节点,很多人提出了类似 《proposal: Go 2: allow import cycle》 's,的建议,希望解决周期引入的问题。

围棋之父罗布派克亲自回答了这个问题,原因如下:.

没有支持循环引用:的目的是迫使围棋程序员更多地考虑程序依赖性。

保持依赖图简单。

快速程序构建。

如果支持循环引用:很容易导致懒惰,不良的依赖管理和缓慢的建设。这是设计师不想看到的。

混乱的依赖。

程序构建缓慢。

因此,考虑到一开始就应该维护依赖图的正确DAG,Rob Pike认为这是一个值得提前简化的领域。

在Go程序中做import loop可能很方便,但背后的成本可能是灾难性的,会对Go的构建性能和依赖性产生非常负面的影响。

因此,明确禁止在Go中支持。

这篇关于“GO不支持循环引用的原因是什么”的文章已经分享到这里了,希望。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/60758.html

(0)

相关推荐

  • 赞美柳树的句子最短的,用简单一句话赞美倒垂柳的句子

    技术赞美柳树的句子最短的,用简单一句话赞美倒垂柳的句子1.春天是个温柔的小女孩,她跳着舞来了赞美柳树的句子最短的。这时的柳树发芽了,那些嫩绿的小芽犹如一个个刚出生的小宝宝探出小小的脑袋,看看这陌生的世界。一阵春风从远处吹

    生活 2021年10月22日
  • 第三人称单数加s规则,为什么动词单三的变化要直接加s

    技术第三人称单数加s规则,为什么动词单三的变化要直接加s主语为第三人称单数时第三人称单数加s规则,动词如果是一般现在时,不一定是直接加-s的,有一些动词是加-es的,也有的动词变化不规则。当主语是第三人称单数,时态是现在

    生活 2021年10月25日
  • 抖音刷点赞有用吗,抖音点赞和粉丝有什么用

    技术抖音刷点赞有用吗,抖音点赞和粉丝有什么用抖音刷点赞有用吗,抖音点赞和粉丝有什么用
    网络兼职要擦亮双眼,保持警惕,不要轻易相信兼职前需要缴纳的各种费用。
    抖音刷多少赞会限制这种诈骗手段与普通的兼职刷单诈骗相比虽然套路

    测评 2021年11月13日
  • 华为手机什么型号好,华为手机哪个系列用的比较好

    技术华为手机什么型号好,华为手机哪个系列用的比较好可以根据自身经济实力来选择购买华为手机什么型号好,至于说哪个系列比较好用,除华为麦芒入门级的差,其他的系列满足普通人的要求是绰绰有余;不过个人经验觉得钱贵一些的旗舰机使用

    生活 2021年10月28日
  • 大众系列车型有哪些,大众哪几个系列的车是国产的

    技术大众系列车型有哪些,大众哪几个系列的车是国产的大众是德国生产的大众系列车型有哪些,分为一汽大众、上海大众、德国大众。“一汽大众”就是“中国一汽”与“德国大众”合作而产生的公司。“上海大众”就是“上海汽车制造厂”与“德

    生活 2021年10月26日
  • 如何理解Python基础中的for循环语句

    技术如何理解Python基础中的for循环语句如何理解Python基础中的for循环语句,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python for循

    攻略 2021年10月25日