各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题是《同一程序内的 Golang 包的多个实例》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!
问题内容我目前正在研究 Golang,并突然想到一个与包实例化相关的点。
问题:同一个包是否可以有不同的实例。
面临的问题:在构建 go 包时,实用程序包(非主包)在整个特定构建过程中仅实例化或编译一次。但是在记录时,出于某种目的,我希望让不同的记录器并行处理不同的包或文件。有什么办法可以让同一个包有多个实例,这样对每个实例所做的更改就不会影响另一个实例。
注意:我找到了一个使用 go-logging 库的好方法,我在其中声明了多个记录器,这完全满足了我的需求。所以,我的主要问题是我们是否可以拥有同一个包的不同实例。
感谢回复。
解决方案
您可以使用 go 模块和别名在同一源文件中导入两个包。当 quote 是标记的存储库或子模块时,这将起作用。
import (
"rsc.io/quote"
quoteV3 "rsc.io/quote/v3"
)
func Hello() string {
return quote.Hello()
}
func Proverb() string {
return quoteV3.Concurrency()
}
好了,本文到此结束,带大家了解了《同一程序内的 Golang 包的多个实例》,希望本文对你有所帮助!关注编程网公众号,给大家分享更多Golang知识!