我正在编写一个包中创建与Kafka的连接。
我在包中主文件的init()
函数中创建连接。使用该程序包的程序停止后,我想调用一个名为Close()
有没有办法在包级别强制执行它,而不是将此责任交给用户?
假设在整个用户程序运行期间连接应该可用,我不想每次都初始化它。
答案 0 :(得分:0)
对于任何资源(并且连接没有区别),用户应该在使用后调用函数将资源返回给系统。大多数用户在语言和体系结构之间理解这一点,因此我不明白为什么您的软件包用户应该有任何顾虑。 Go通过包含defer语句非常优雅地解决了这个问题,这使得提供释放资源非常容易。