goioc / di:依赖注入 为什么在DI中使用DI? 为什么要使用IoC? 我已经通过在Java中使用依赖注入近10年了。 我并不是说不能没有它,但是事实证明,它对于大型企业级应用程序非常有用。 您可能会争辩说Go遵循完全不同的意识形态,重视与Java不同的原理和范例,并且在这个更好的世界中不需要DI。 我什至可以部分同意这一点。 但是我还是决定为Go创建一个类似Spring的轻量级库。 毕竟,您可以自由使用它 :slightly_smiling_face: 它是Go唯一的DI库吗? 不,当然不是。 有很多图书馆都在为类似的目的服务(我什至从其中一些中学到了灵感)。 问题是我在所有这些库中都缺少了某些东西。因此,我决定创建另一个IoC容器来统治所有这些。 我们非常欢迎您使用任何其他库,例如。 而且,我还是建议在这里停下来 :winking_face: 那么它是怎样工作的? 展现比描述更好。 看一下这个玩具示例(省略了错误处理以最小化代码片段):