Dalam Go, mencipta struct dan memberikan kaedah kepadanya tidak menjamin bahawa kaedah itu akan digunakan selepas objek ciptaan. Untuk menangani isu ini, mari kita terokai pilihan yang tersedia.
Kaedah Close() yang harus digunakan semasa penciptaan objek tidak boleh dipaksa untuk dilaksanakan. Amalan terbaik adalah untuk menekankan dalam dokumentasi bahawa kaedah mesti dipanggil setelah objek tidak lagi diperlukan.
Dalam kes yang melampau apabila atur cara ditamatkan secara tiba-tiba, tiada jaminan bahawa sebarang kod akan dijalankan. Fungsi runtime.SetFinalizer() boleh digunakan untuk mendaftarkan fungsi yang akan dilaksanakan apabila pengumpul sampah mengenal pasti nilai sebagai tidak boleh dicapai. Walau bagaimanapun, tiada jaminan bahawa fungsi berdaftar akan digunakan sebelum program keluar.
Satu pendekatan yang mungkin adalah untuk menjadikan jenis itu tidak dieksport dan mendedahkan fungsi pembina seperti NewMyType(), di mana struct boleh dimulakan dengan sewajarnya . Ini tidak menguatkuasakan panggilan ke kaedah Close() tetapi menghalang keperluan untuk mengendalikan pengamulaan yang tidak betul.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memastikan Invokasi Kaedah Selepas Penciptaan Objek dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!