在 Go 中,建立結構體並為其指派方法並不能保證該方法會在物件之後呼叫建立。為了解決這個問題,讓我們探索可用的選項。
應該在物件建立時呼叫的 Close() 方法不能強制執行。最佳實踐是在文件中強調,一旦不再需要該對象,就必須呼叫該方法。
在程式突然終止的極端情況下,無法保證任何程式碼都會運作。 runtime.SetFinalizer() 函數可用於註冊函數,該函數將在垃圾收集器將某個值識別為無法存取時執行。但是,不能保證在程式退出之前會呼叫註冊的函數。
一種可能的方法是不導出類型並公開一個建構函數,例如 NewMyType(),在該函數中可以適當地初始化結構。這不會強制呼叫 Close() 方法,但可以避免處理不正確的初始化。
以上是Go中如何保證創建物件後方法的呼叫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!