完成使用包后强制调用Close()

时间:2017-03-01 08:41:22

标签: go

我正在编写一个包中创建与Kafka的连接。

我在包中主文件的init()函数中创建连接。使用该程序包的程序停止后,我想调用一个名为Close()

的函数

有没有办法在包级别强制执行它,而不是将此责任交给用户?

假设在整个用户程序运行期间连接应该可用,我不想每次都初始化它。

1 个答案:

答案 0 :(得分:0)

对于任何资源(并且连接没有区别),用户应该在使用后调用函数将资源返回给系统。大多数用户在语言和体系结构之间理解这一点,因此我不明白为什么您的软件包用户应该有任何顾虑。 Go通过包含defer语句非常优雅地解决了这个问题,这使得提供释放资源非常容易。