在 Go 中,创建结构体并为其分配方法并不能保证该方法将在对象之后调用创建。为了解决这个问题,让我们探索可用的选项。
应该在对象创建时调用的 Close() 方法不能强制执行。最佳实践是在文档中强调,一旦不再需要该对象,就必须调用该方法。
在程序突然终止的极端情况下,无法保证任何代码都会运行。 runtime.SetFinalizer() 函数可用于注册一个函数,该函数将在垃圾收集器将某个值识别为无法访问时执行。但是,不能保证在程序退出之前会调用注册的函数。
一种可能的方法是不导出类型并公开一个构造函数,例如 NewMyType(),在该函数中可以适当地初始化结构。这不会强制调用 Close() 方法,但可以避免处理不正确的初始化。
以上是Go中如何保证创建对象后方法的调用?的详细内容。更多信息请关注PHP中文网其他相关文章!