【发布时间】:2019-11-04 20:57:19
【问题描述】:
我目前正在研究 Golang,并遇到了一个与包实例化相关的问题。
问题:我们是否可以拥有同一个包的不同实例。
面临的问题:在构建 go 包时,实用程序包(非主)在整个特定构建过程中仅被实例化或编译一次。但是在记录时,出于某种目的,我希望让不同的记录器并行处理不同的包或文件。有什么办法可以让我拥有同一个包的多个实例,这样对每个包所做的更改就不会影响另一个。
注意:我找到了一个很好的解决方法,使用 go-logging 库,我声明了多个记录器,这完全满足了我的需要。所以,我的主要问题是我们是否可以拥有同一个包的不同实例。
感谢回复。
【问题讨论】:
-
不,你不能。如果一个包有多个副本,程序将无法编译。
-
不清楚你想达到什么。如果您想要不同的记录器,请创建两个记录器。在 Go 中,你不能动态交换包。尽管使用 Go 模块很容易,但您可以拥有两个版本的包。
-
@georgeok 我认为模块是我正在寻找的。谢谢。
标签: go package instantiation