在golang中创建对象后,如何确保使用方法?

在golang中创建对象后,如何确保使用方法?,第1张

在golang中创建对象后,如何确保使用方法?

无法强制调用

Close()
方法。最好的办法就是清楚地记录下来,如果不再需要类型的值,则
Close()
必须调用其方法。

在极端情况下,如果程序被强制终止,则不能保证任何代码都会运行

请注意,有一个

runtime.SetFinalizer()
函数允许您注册一个函数,当垃圾回收器发现值/块不可访问时将调用该函数。但是请注意,不能保证您注册的功能将在程序退出之前运行。引用其文档:

无法保证终结器会在程序退出之前运行,因此通常它们仅对在长时间运行的程序期间释放与对象关联的非内存资源有用。

一个好的设计是使您的类型不导出,但是提供一个导出的构造函数,例如

NewMyType()
,您可以在其中正确地初始化struct
/类型。还返回接口类型而不是具体类型,并且该接口应包含其他人希望对您的值进行的 *** 作。当然,您的具体类型必须实现该接口。
Close()
当值完成后,您不能强迫其他人调用它的方法,但是至少您可以停止担心初始化不当。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4983180.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存