Go では、構造体を作成してそれにメソッドを割り当てても、オブジェクトの作成後にメソッドが呼び出されることは保証されません創造。この問題に対処するために、利用可能なオプションを調べてみましょう。
オブジェクトの作成時に呼び出される Close() メソッドを強制的に実行することはできません。ベスト プラクティスは、オブジェクトが不要になったらメソッドを呼び出す必要があることをドキュメントで強調することです。
プログラムが突然終了するような極端なケースでは、コードが実行されるという保証はありません。 runtime.SetFinalizer() 関数を使用して、ガベージ コレクターが値が到達不能であると識別したときに実行する関数を登録できます。ただし、プログラムが終了する前に登録された関数が呼び出されるという保証はありません。
考えられるアプローチの 1 つは、型をエクスポート解除して、構造体を適切に初期化できる NewMyType() のようなコンストラクター関数を公開することです。 。これにより、Close() メソッドの呼び出しが強制されるわけではありませんが、不適切な初期化を処理する必要がなくなります。
以上がGo でオブジェクト作成後にメソッドを確実に呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。